当前位置: 首页 > 编程日记 > 正文

Python安装及netcdf数据读写

为什么80%的码农都做不了架构师?>>>   hot3.png

一、在CentOS7系统上安装Python3

在anaconda官网下载(http://https://www.anaconda.com/download/#linux)(Anaconda指的是一个开源的Python发行版本,是Python的包管理器和环境管理器)

下载linux安装包:Anaconda3-5.2.0-Linux-x86_64.sh,上传到服务器

执行“sh Anaconda3-5.2.0-Linux-x86_64.sh”进行安装

输入“yes”,进行许可证确认

输入“本地安装路径”,执行普通用户目录下安装(注意安装完成后,不要再更改anaconda路径了)

注意“同意安装程序在bashrc中添加环境变量”,安装完成后source ~/.bashrc

(export PATH="/home/xxx/usr/local/anaconda3/bin:$PATH")

输入“python3”测试成功与否

二、配置vim的Python3支持

通过设置~/.vimrc和在~/.vim添加插件,来实现有代码高亮、代码自动补全(pydiction-1.2.3)、代码自动提示(autocomplpop.vim)等,使vim接近IDE

三、Python3读取netcdf数据,并简单画图

1、添加conda清华源,加快安装速度

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

conda config --set show_channel_urls true

2、更新conda本身和自带库(前提:服务器可以连接外网)

conda update -n base conda

conda upgrade --all

3、安装netCDF4、basemap库

分别conda install netCDF4、conda install basemap即可

分别import netCDF4 as nc和from mpl_toolkits.basemap import Basemap不报错即可

4、错误undefined symbol: omp_get_num_procs

conda install mkl-rt

5、错误Qt: Could not determine keyboard configuration data from X server

在bashrc中添加

export XKB_DEFAULT_RULES=base

export QT_XKB_CONFIG_ROOT=/usr/share/X11/xkb

6、错误Qt: XKEYBOARD extension not present on the X server

设置xmange中的Xconfig->Default Profile->Properties->Advanced->X Extensions-> check the 'XKEYBOARD'(勾选)

7、错误QXcbConnection: Failed to initialize XRandr(弯路,请跳过)

(Qt5:Qt是诺基亚公司的C++可视化开发平台,最新版本为Qt5;XRandr:设置屏幕显示的软件包)

a、执行qtcreator,发现服务器本身就没有安装qt5和qt,因此先进行安装

感谢参考:CentOS7安装EPEL源(https://blog.csdn.net/qq_19674905/article/details/78224125)

感谢参考:配置国内y和e源(http://https://www.cnblogs.com/renpingsheng/p/7845096.html)

配置yum国内源:

cd /etc/yum.repos.d/; mkdir repo_bak; mv *.repo repo_bak/

wget http://mirrors.aliyun.com/repo/Centos-7.repo

wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

yum clean all && yum makecache

安装epel并配置epel国内源:

yum -y install epel-release

wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum clean all && yum makecache

查看所有可用源和所有源(可用源和禁用源):

yum repolist enabled

yum repolist all

安装qt-creator和qt:

yum install qt-creator

yum install qt

b、再次执行qtcreator,报错:libGL error: No matching fbConfigs or visuals found

暂时终止排错,因为虽然有错误,但是不影响简单画图

8、python读取nc数据,简单画图程序

from mpl_toolkits.basemap import Basemap  # import Basemap
import numpy as np  
import matplotlib.pyplot as plt  
from netCDF4 import Dataset  # netcdf4-python module  # load in the netCDF4 file  
nc = Dataset('mdbz.nc')  # read the variables from the netCDF4 file and assign 
mdbz = nc.variables['mdbz'][:,:]  
lat = nc.variables['lat'][:]  
lon = nc.variables['lon'][:]  # set the plotting var for 2d shaded figure,set the colormap
plt.contourf(mdbz, cmap='Accent')  # show and save the figure  
plt.savefig('mdbz.png')  
plt.show()  

四、Python3读取netcdf数据,并输出到新的netcdf数据

print(type(mdbz)) 查看变量类型

print(mdbz.shape[0]) 查看变量第0维大小

print(id(mdbz)) 查看变量内存地址

lat[:] = lats[:] 正确赋值;lat = lats 错误赋值

from netCDF4 import Dataset  # netcdf4-python module  
from scipy.io import netcdf  # load in the netCDF4 file  
nc = Dataset('mdbz.nc')  # read the variables from the netCDF4 file and assign 
mdbz = nc.variables['mdbz'][:,:]  
lats = nc.variables['lat'][:]  
lons = nc.variables['lon'][:]  # output to the new netCDF4 file  
f = netcdf.netcdf_file('mdbz_new.nc', 'w')  
f.createDimension('lat', mdbz.shape[0])  
f.createDimension('lon', mdbz.shape[1])  
reflectivity = f.createVariable('reflectivity', 'f8', ('lat', 'lon'))  
lat = f.createVariable('lat', 'f8', ('lat', ))  
lon = f.createVariable('lon', 'f8', ('lon', ))  
reflectivity[:,:] = mdbz[:,:]  
lat[:] = lats[:]  
lon[:] = lons[:]  
lat.units = "degrees_north"  
lon.units = "degrees_east"  
reflectivity.units = "dBZ"  
f.close()  

转载于:https://my.oschina.net/voole/blog/2987666

相关文章:

用Visio进行数据库建模、设计和实现

用Visio进行数据库建模、设计和实现 摘要:Visio是微软著名的图形软件,功能强大。使用Visio完成绘图任务时能够显著地提高工作效率和质量。目前功能最全的Visio版本是VSEA(Visual Studio Enterprise Architect)2003所自带的2003版。 原文发表在中科院网络…

JavaScript如何声明对象、函数以及对象中的函数(即方法)

目录 声明对象的2种最常见方法 声明函数的2种最常见方法 在对象中声明函数 声明对象的2种最常见方法 1) var Zhihuijun {name:彭志辉,age:28,upName:稚晖君,company:Huawei,};console.log(Zhihuijun.name目前在Zhihuijun.company工作); 2) var Zhi…

python之抽象基类

抽象基类特点 1.不能够实例化 2.在这个基础的类中设定一些抽象的方法,所有继承这个抽象基类的类必须覆盖这个抽象基类里面的方法 思考 既然python中有鸭子类型,为什么还要使用抽象基类? 一是我们在某些情况下希望判定某个对象的类型&#xff…

Poolmon

P 排序标记列表中的通过分页,无-分页或混合。请注意 P 循环通过每个。B 进行排序按最大字节使用情况的标记。M 按最大字节分配对标签进行排序。T 按标记名称按字母顺序排序标记。E 显示分页,跨底部未分页的总计。循环。A 按分配大小对标签进行排序。F 按…

移动网站性能优化(未完。。。)

移动网站天生有三种性能限制:带宽低,内存小,处理器性能低。 这些性能挑战又加上其他的问题,如: 网页比以前更大延迟相差巨大下载速度相差巨大解决问题: 改善网站性能的主要策略并没有因为从PC变成手机或者平…

JavaScript对象数组示例

可以用于暂时无法从数据库中拿到数据时,模拟数据使用 var datas [{name:囧菌,subject:JavaScript,grade:100 },{name : 双笙,subject : React,grade : 100 },{name:陈拾月,subject:Vue,grade:100 }]; 其实相当于 var datasInt [1,2,3]; 注意:是引号…

PHP协程:并发 shell_exec

在PHP程序中经常需要用shell_exec执行一些命令&#xff0c;而普通的shell_exec是阻塞的&#xff0c;如果命令执行时间过长&#xff0c;那可能会导致进程完全卡住。在Swoole4协程环境下可以用Co::exec并发地执行很多命令。 本文基于Swoole-4.2.9和PHP-7.2.9版本协程示例 <?p…

oralce 增加表字段命令|oralce 增加表字段类型命令

oralce 增加表字段命令 语法 alter table 表明 add 字段名 类型 alter table aqcuser add email varchar(36)转载于:https://www.cnblogs.com/bestsaler/archive/2010/09/08/1835430.html

mac 下周期调度命令或脚本

crontab 是在linux服务器上部署定时任务的方法0 5 * * * /usr/bin/python /data/www/tools/mysql_backup.pycmd之前有5个项目要填&#xff0c;分别对应分钟 小时 天 月 一周当中第几天( 0-6 ,0表示星期天)填写方法* 表示都满足&#xff0c;例如 * * * * * 表示每分钟执行一次&a…

JavaScript封装一个注册函数解决兼容问题

我们知道JavaScript注册(绑定)事件主要有两类方式&#xff0c;第一类传统方式具有注册事件的唯一性&#xff0c;即对于同一元素的同一事件&#xff0c;不会出现两个处理函数&#xff0c;如下 var btn document.querySelector(button);btn.onclick function(){document.body.s…

四种DCOM错误的区别,0x80080005 0x800706be 0x80010105 0x

四种DCOM错误的区别Differences between the following DCOM error0x800800050x800706be0x800101050x800706ba0x80080005:CO_E_Server_Exec_FailureServer execution failedIt is usually quite clear: COM (really, RPCSS) tried to launch a particular server process and e…

给django视图类添加装饰器

要将login_required装饰到view class的dispatch方法上&#xff0c; 因为dispatch方法为类方法&#xff0c;不是单个的函数&#xff0c;所以需要将装饰函数的装饰器 login_required转化为装饰类方法的装饰器&#xff0c;就要用到method_decorator . method_decorator的参数可以是…

JavaScript实现智能搜索框

应用场景&#xff1a; 1. 搜索框在页面中占据的空间过小&#xff0c;希望无论浏览到什么位置&#xff0c;可以轻易地回到并聚焦搜索框。 2. 搜索框里面的文字大小过小&#xff0c;希望能够在上方开辟一块空间放大内容 解决思路&#xff1a; 1. 对整个页面添加键盘事件keyup…

搜索引擎技术之概要预览

搜索引擎技术之概要预览前言近些天在学校静心复习功课与梳理思路&#xff08;找工作的事情暂缓&#xff09;&#xff0c;趁闲暇之际&#xff0c;常看有关搜索引擎相关技术类的文章&#xff0c;接触到不少此前未曾触碰到的诸多概念与技术&#xff0c;如爬虫&#xff0c;网页抓取…

Linux 守护进程,编写(转载)

设置守护进程过程&#xff1a;1.创建子进程&#xff0c;父进程退出2.在子进程中创建新会话3.改变当前目录为根目录4.重设文件权限掩码5.关闭文件描述符*6.守护进程里&#xff0c;忽略SIGCHLD信号 (即使fork两次&#xff0c;新进程由init接管&#xff0c;不进行signal(SIGCHLD,S…

RecycleView的notifyItemRemoved使用注意

转载请标明出处&#xff0c;维权必究&#xff1a;https://www.cnblogs.com/tangZH/p/10116095.html 我们为了移除RecycleView的某一项&#xff0c;会用RecycleView的notifyItemRemoved&#xff08;int position&#xff09;方法&#xff0c;但是需要注意的是&#xff1a;1、用该…

JavaScript实时更新中国标准时间

用到Date对象和BOM中的setInterval()定时器。 效果如下&#xff08;每隔1s刷新一次&#xff09; 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content&q…

【转】Flex4:利用HttpService与ASP.NET传输JSON数据(登录为例)

开发环境&#xff1a;Flash Builder4,Vs2005 1、首先打开FlashBuilde4,创建一个名为HttpService_Net_Json的flex项目 &#xff08;图1&#xff09; 然后下一步,应用程序类型选择web,应用程序服务器类型选择ASP.NET(如图2) &#xff08;图2&#xff09; 下一步&#xff0c;出现配…

使用Node.js写一个简单的api接口

引入Http模块 默认你已经安装了Node.js Node当中内置了Http模块&#xff1b; 可以使用 var http require("http"); 复制代码引入http模块&#xff1b; Hello world 用Node.js实现一个HTTP服务器程序非常简单。我们实现一个最简单的Web程序&#xff0c; 它对于所有请求…

body,td,th {

三、继承中容易引起的错误有时候继承也会带来些错误&#xff0c;比如说下面这条css定义&#xff1a; body{color:blue} 在有些浏览器中这句定义会使除表格之外的文本变成蓝色。从技术上来说&#xff0c;这是不正确的&#xff0c;但是它确实存在。所以我们经常需要借助于某些技巧…

JavaScript实现 按钮不可过频繁使用

主要用到setInterval和clearInterval方法和一个计时变量。 效果 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta na…

二十分钟教你如何将区块链应用与函数计算相结合

前言 本篇文章适合对区块链应用感兴趣或是想要通过函数计算服务进一步开发区块链应用的新人。本文将结合阿里云区块链服务、阿里云函数计算服务、阿里云日志服务 以及社区应用 Marbles&#xff0c;手把手教大家如何将阿里云区块链服务与阿里云函数计算服务相结合&#xff0c;并…

【转】推荐!国外程序员整理的Java资源大全

构建 这里搜集了用来构建应用程序的工具。 Apache Maven&#xff1a;Maven使用声明进行构建并进行依赖管理&#xff0c;偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配置&#xff0c;所以维护起来相当困难。Gradle&#xff1a;Grad…

科研成果汇总:收获的季节

感谢课题组各届成员(2006&#xff5e;2010级)长期不懈的努力与付出&#xff0c;特别感谢目前仍工作在第一线的各位成员的鼎力配合与协作&#xff0c;大家辛苦了&#xff01;同时&#xff0c;还要感谢研究所对我们组的大力支持与帮助&#xff01;谢谢大家&#xff01; BTW&#…

JavaScript 利用location对象实现跨页面传参

需求简述&#xff1a; 两个页面login.html和homepage.html&#xff0c;在login页输入用户名&#xff0c;点击登录会跳转到主页&#xff0c;主页拿到login页输入的用户名 实现思路&#xff1a; 1. 跳转&#xff1a;修改location.html 2. 拿参&#xff1a;处理location.searc…

编译u-boot时候,make distclean 出现rm:无法删除,****是一个目录

今天在编译u-boot的时候&#xff0c;make distclean&#xff0c;出现了rm:无法删除 "include/asm-arm/arch": 是一个目录。经过查看网友的解决办法&#xff0c;已经解决了。 具体解决办法&#xff1a;在uboot顶层有个mkconfig文件&#xff0c;vim打开后&#xff0c;在…

[转载]MaxtoCode对.Net程序加密的原理及解密探讨三(实例解密)

标 题: 【原创】MaxtoCode对.Net程序加密的原理及解密探讨三&#xff08;实例解密&#xff09;作 者: rick时 间: 2006-09-29,23:16:28链 接: http://bbs.pediy.com/showthread.php?t32658上一回我们试验了通过反射的方式获取method的源代码。这次我们就用一个实例来演示dump一…

MyEclipse教程:Web开发——创建Web片段项目

MyEclipse 在线订购年终抄底促销&#xff01;火爆开抢>>MyEclipse最新版下载本教程向用户展示了使用关联的Web项目创建Web片段项目的机制。 用户还可以获得要检查的示例项目。 在本教程中&#xff0c;用户将学习如何&#xff1a;创建Web片段和关联的Web项目部署并测试包含…

JavaScript 实现鼠标移动时实时获取其相对盒子的偏移

实现思路&#xff1a; 1. 获得盒子相对于页面的偏移量 div.offsetTop和div.offsetLeft 2. 获得鼠标相对于页面的偏移量 e.pageY和e.pageX 3. 前两者相减即可获得鼠标相对于盒子上沿和左侧的偏移 4. 使用鼠标移动事件 mousemove 实现效果&#xff1a; 代码 <!DOCTYPE h…

H.264 picture parameter sets成员值含义学习笔记

-picture parameter sets1. pic_parameter_set_idpic_parameter_set_id指明了在切片头中对应的某个psp.pic_parameter_set_id的值应该在0到255,包括0和2552. seq_parameter_set_idset_parameter_set_id表示激活的sps.seq_parameter_set_id应该取值在0到31之间,包括边界值.3. en…