使用Earth Engine和Cartopy制作出版物质量的地图!
项目描述
cartoee
使用Earth Engine和Cartopy制作出版物质量的地图!
安装
cartoee
可以通过pip
进行安装。要安装此软件包,您可以使用pip在您的Python环境中进行安装
pip install cartoee
或者,您可以使用以下命令从源代码手动安装该软件包
git clone https://github.com/kmarkert/cartoee.git
cd cartoee
python setup.py install
有关安装依赖项的说明,请参阅文档
与cartoee合作
cartoee
旨在做好一件事:将从Earth Engine获取的处理结果输出到出版物质量的地图界面。cartoee
简单地从Earth Engine获取结果,并使用正确的地理投影将其绘制出来,将更多的处理和可视化工作留给ee
和cartopy
。
简单案例
以下是可视化SRTM数据在地图上的简单工作流程
import cartoee as cee
import ee
ee.Initialize()
# get an earth engine image
srtm = ee.Image("CGIAR/SRTM90_V4")
# plot the result using cartoee
ax = cee.getMap(srtm,region=[-180,-90,180,90],visParams={'min':0,'max':3000})
ax.coastlines()
plt.show()
现在我们已经将EE图像作为cartopy/matplotlib对象,我们可以开始使用cartopy API为出版物样式化我们的绘图。
import cartopy.crs as ccrs
from cartopy.mpl.gridliner import LATITUDE_FORMATTER, LONGITUDE_FORMATTER
# set gridlines and spacing
xticks = [-180,-120,-60,0,60,120,180]
yticks = [-90,-60,-30,0,30,60,90]
ax.gridlines(xlocs=xticks, ylocs=yticks,linestyle='--')
# set custom formatting for the tick labels
ax.xaxis.set_major_formatter(LONGITUDE_FORMATTER)
ax.yaxis.set_major_formatter(LATITUDE_FORMATTER)
# set tick labels
ax.set_xticks([-180,-120,-60, 0, 60, 120, 180], crs=ccrs.PlateCarree())
ax.set_yticks([-90, -60, -30, 0, 30, 60, 90], crs=ccrs.PlateCarree())
做更多...
现在我们已经掌握了简单示例,我们可以使用Earth Engine进行一些处理,制作一张漂亮的地图。
# function to add NDVI band to imagery
def calc_ndvi(img):
ndvi = img.normalizedDifference(['Nadir_Reflectance_Band2','Nadir_Reflectance_Band1'])
return img.addBands(ndvi.rename('ndvi'))
# MODIS Nadir BRDF-Adjusted Reflectance with NDVI band
modis = ee.ImageCollection('MODIS/006/MCD43A4')\
.filterDate('2010-01-01','2016-01-01')\
.map(calc_ndvi)
# get the cartopy map with EE results
ax = cee.getMap(modis.mean(),cmap='YlGn'
visParams={'min':-0.5,'max':0.85,'bands':'ndvi',},
region=[-180,-90,180,90])
ax.coastlines()
cb = cee.addColorbar(ax,loc='right',cmap='YlGn',visParams={'min':0,'max':1,'bands':'ndvi'})
从示例中可以看出,我们计算了2010-2015年的MODIS图像上的NDVI,并创建了一张带有每个像素平均值的全局地图。
如果我们想用不同的投影制作多张地图怎么办?我们可以通过创建我们的图形并供应绘图轴来实现这一点。
# get land mass feature collection
land = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017')
# get seasonal averages and clip to land features
djf = modis.filter(ee.Filter.calendarRange(12,3,'month')).mean().clip(land)
mam = modis.filter(ee.Filter.calendarRange(3,6,'month')).mean().clip(land)
jja = modis.filter(ee.Filter.calendarRange(6,9,'month')).mean().clip(land)
son = modis.filter(ee.Filter.calendarRange(9,12,'month')).mean().clip(land)
fig,ax = plt.subplots(ncols=2,nrows=2,subplot_kw={'projection': ccrs.Orthographic(-80,35)})
imgs = np.array([[djf,mam],[jja,son]])
titles = np.array([['DJF','MAM'],['JJA','SON']])
for i in range(len(imgs)):
for j in range(len(imgs[i])):
ax[i,j] = cee.addLayer(imgs[i,j],ax=ax[i,j],
region=bbox,dims=500,
visParams=ndviVis,cmap='YlGn'
)
ax[i,j].coastlines()
ax[i,j].gridlines(linestyle='--')
ax[i,j].set_title(titles[i,j])
cax = fig.add_axes([0.9, 0.2, 0.02, 0.6])
cb = cee.addColorbar(ax[i,j],cax=cax,cmap='YlGn',visParams=ndviVis)
要查看更多示例,请访问https://cartoee.readthedocs.io!
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
cartoee-0.0.5.tar.gz (8.4 kB 查看哈希值)
构建分发
cartoee-0.0.5-py3-none-any.whl (10.8 kB 查看哈希值)
关闭
cartoee-0.0.5.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 089e47382d01c4e8c7f6cf9b70c461a15a3bfd63a475f709bf9b42d656820078 |
|
MD5 | 45c62d22b2b5ad71b29eea077016adae |
|
BLAKE2b-256 | 828997af186be14eb171336d06f754ef3a81119365c35f72b6182c9f91433a9e |
关闭
cartoee-0.0.5-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8cf6d2994b4c7896dc7be7edd7d60d6847e42d12420a9d3c0b6b3cd11abff19e |
|
MD5 | fbb25935ff4870815f22323e0dd2c0c2 |
|
BLAKE2b-256 | a9384b196163654dd00daaa4a6988bff6908866130bc21703d4b73a439ffe654 |