【原创】制图案例分享

流域制图

  1. 从Gee获取WWF的hydrosheds。在需要的区域内打点,然后调整WWF的级别,从WWF筛选对应流域。
  2. 基于上一步的流域,对GRN进行筛选得到各级河网。
  3. 将河网和流域下载到本地,进行制图。

亚洲水塔

大图

目的是筛选亚洲中部高山区周围的辫状河段,并用遥感的手段研究这些辫状河段对气候变化的响应。现在想要做一个图,底图考虑用DEM,上覆水系图层,并将河段图层上覆于水系。不考虑行政区划的边界,因为与问题不相干。

  1. 水系数据集
var GRN=ee.FeatureCollection('projects/sat-io/open-datasets/GRN/as_river')
          .filter(ee.Filter.eq('R_level', 1))
  1. 画个geometry用来筛选水系,GRN.filterBounds(geometry) 。
    在这里插入图片描述
  2. 下载各级水系shp,用FeatureCollection的getDownloadURL方法。该水系数据集只有4个水系分级,分别下载四次。
  3. 下载DEM数据,同样用Image的getDownloadURL方法,scale设置为1000 m。
var elevation=ee.Image('NASA/NASADEM_HGT/001').select('elevation').clip(geometry)
  1. 把我画的河段的shp下载到本地
  2. 在gis中绘图,效果如下图所示,发现河段用shp表现出来很小,不好看。在这里插入图片描述
  3. 考虑使用在gee内使用.map(function(f){return f.centroid(1000)})方法对河段要素集合的每一个河段要素计算其质心点,进而保持河段的点shp而不是面shp。在GIS中效果如下。在这里插入图片描述
  4. 转换视图投影
    在这里插入图片描述
  5. 结果在这里插入图片描述

小图

用matplotlib的basemap模块from mpl_toolkits.basemap import Basemap

  1. 导入库
import pyris
from osgeo import gdal, gdal_array, osr
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.basemap import Basemap
from matplotlib.patches import Polygon
from matplotlib.collections import PatchCollection
  1. 想要显示亚洲水塔的范围,我这里大概用2500m以上来表示。 r'E:\Projects\Tower\GIS\tower_dem_1km.tiff'是我从GEE上面下载的dem影像。
elevation = gdal_array.LoadFile( r'C:\Users\Administrator\Desktop\tower_dem_1km.tiff' )
pyris.show_npy(elevation>2500)
pyris.raster2shp( r'C:\Users\Administrator\Desktop\tower_dem_1km.tiff', r'E:\Projects\Tower\GIS\tower_dem_1km.shp', binaryzation=2500)
  1. 绘图
fig = plt.figure()
ax = fig.add_subplot(111)

map = Basemap(projection='ortho',lat_0=33,lon_0=90.5,resolution='l',\
	 # llcrnrlon=66,llcrnrlat=18,urcrnrlon=113,urcrnrlat=45
	)

map.drawcoastlines(linewidth=0.5)

map.readshapefile( r'E:\Projects\Tower\GIS\tower_dem_1km', 'tower', drawbounds=False )
patches = []
for info, shape in zip(map.tower_info, map.tower):
	# if info['FID'] == 'Selva':
	patches.append( Polygon(np.array(shape), True ) )   
ax.add_collection(PatchCollection(patches, facecolor= 'm', edgecolor='k', linewidths=0.8, zorder=2, alpha=0.6))

map.etopo( scale=0.5, alpha=0.8 )# terrain
plt.savefig('tower.png',dpi=500,facecolor='w',edgecolor='w',orientation='portrait',format=None,transparent=False,bbox_inches=None,pad_inches=0.1,metadata=None)
plt.show()
  1. 效果
    请添加图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值