from scipy.stats.kde import gaussian_kde
import numpy
from scipy.io import netcdf
import gdal

from gdalconst import *
#import numpy,osr,sys
import netCDF4
import pdb
import datetime
from scipy import interpolate

import scipy.io as sio

import matplotlib.pyplot as plt

from mpl_toolkits.basemap import Basemap ,shiftgrid

import numpy as np

import math
#import seawater as sw
from scipy import interpolate
from math import radians, cos, sin, asin, sqrt
import netCDF4
import glob
import os
import datetime
from matplotlib.path import Path
from collections import Counter

data=netCDF4.Dataset(os.path.join('E:\HYcom1\uv\uv1\hycom_glb_911_2016010100_t000_uv3z.nc'))
latitudes = data.variables['lat'][1188:1626]
longitudes = data.variables['lon'][750:2063]
lons, lats = np.meshgrid(longitudes,latitudes)
v=np.zeros([438,1313])#空的二维数组
u=np.zeros([438,1313])#空的二维数组
gird= [[0 for col in range(1313)] for row in range(438)]
k=0
tempv=data.variables['water_v'][0][k]
tempu=data.variables['water_u'][0][k]
#k=4
for i in range(1188,1626):
for j in range(750,2063):
if math.isnan(tempv[i][j]):
v[i-1188][j-750]=0
else:
v[i-1188][j-750]=tempv[i][j]
if math.isnan(tempu[i][j]):
u[i-1188][j-750]=0
else:
u[i-1188][j-750]=tempu[i][j]
#将为nan的数值赋值为0
for i in range(0,438):#当分辨率改变时需要改变
for j in range(0,1313):
gird[i][j]=math.sqrt(u[i][j]*u[i][j]+v[i][j]*v[i][j])
#格网数据标量化
for i in range (1,438,2):
for j in range (1,1313,2):
gird[i-1][j-1]=(gird[i-1][j-1]+gird[i-1][j]+gird[i][j-1]+gird[i][j])/4
for i in range (0,438):
for j in range (0,1313):
gird[i][j]=gird[int(i/2)*2][int(j/2)*2]
#双for循环，第一个将范围内的平均值存在左上角的位置，第二个将左上角的数据赋值所选范围内
gird= np.array(gird)
m = Basemap(llcrnrlon=60,urcrnrlon=165,llcrnrlat=15,urcrnrlat=50)
fig = plt.figure(edgecolor='none',frameon='false')#1124 figsize=(8,4),dpi=20
fig.set_size_inches(64,21.4)
x, y = m(lons, lats)
m.bluemarble()
m.pcolor(x,y,gird,cmap=plt.cm.RdBu_r)
m.fillcontinents(color='#CCCCCC',lake_color='#CCCCCC')#,alpha=0.0
plt.savefig(os.path.join(r'E:\34\prectice\1202\'+'64214.png'))
plt.close()

1个回答

Python代码 收藏代码
def hideInfoInImage(img, info):

if img.mode != "RGBA":

img = img.convert("RGBA")

if info.mode != "L" and info.mode != "1":

info = info.convert("L")

img.putalpha(info)

``````return img
``````

python用matplotlib画K线
-
python的matplotlib中根据分类选取不同标记
-

-
vs中使用python操作matplotlib时发生错误
-
Python/matplotlib：已知空间上一点坐标和长宽高值，如何画出立方体？
-
python import matplotlib.pyplot 报错 DLL load failed
-
Python的matplotlib中如何获取矩形选择器与曲线相交的那部分的点的坐标
-

-
win10中python的matplotlib库的相关问题
-
python 用matplotlib绘图，如何让多个子图的横轴标签全部旋转
-
python用matplotlib显示图片出错
-
Python使用matplotlib绘图怎么把图的标题放到图下方
-
Python中matplotlib.pyplot.hist显示x must be 1D or 2D
-
python3matplotlib，更新了pip3等包，loglog双对数图出现问题怎么解决？
-

-
python安装matplotlib报错
-
win10下python中matplotlib相关问题
-

-

-

GitHub开源的10个超棒后台管理面板

100 个网络基础知识普及，看完成半个网络高手

C语言实现推箱子游戏

Java 的每个基本类型都对应了一个包装类型，比如说 int 的包装类型为 Integer，double 的包装类型为 Double。基本类型和包装类型的区别主要有以下 4 点。

8000字干货：那些很厉害的人是怎么构建知识体系的