python绘制⼭峰图_利⽤Python实现⼭体阴影效果渲染(代删除文件恢复 百度网盘
码)
前段时间⽼在和Python的matplotlib过不去,虽然这个东西特别简单好⽤,但是默认绘制出来的图形简单中带着特有的丑,⽐如我对地震数据情况进⾏了⼀个2D散点图绘制,啥参数语句也不加,默认出现的就是这个效果:
好吧……虽然是默认的效果,这样太单薄了……所以就琢磨着要不加个背景图?⽐如这样的:
嗯,在下⾯叠个世界地图做背景,⽴马就有GIS的赶脚了……oracle10g64位客户端
所以发现,matplotlib的imshow这个功能确实灰常好⽤,⽤了真的可以扶摇直上九万⾥啊。
所以,我决定⽤它对dem⽣成的⼭体阴影做⼀个渲染,⽐如直接出dem是这样的:
然后做⼀个渲染的话,可以是这样的:
利⽤ArcGIS的空间分析扩展⽣成⼭体阴影分析图,是这样的:
最后,只需要设定两个图形,渲染+阴影,然后就变成这个样⼦:
是不是瞬间就觉得⾼⼤上了……分类汇总的函数公式
matplotlib中imshow的功能灰常灰常之强⼤,能够把任意numpy的数字直接渲染成图,或者可以直接加载图⽚为任意分析图形的背景,在分析和可视化的那是灰常有⽤。
最后,给出以上绘制的全部源代码:
import arcpy
import matplotlib.pyplot as plt
ras = "e:/dem/rkzNorth2.tif"
hy = arcpy.RasterToNumPyArray(arcpy.Raster(ras))
#渲染灰度图
ax = plt.figure(figsize=(9,9))
plt.imshow(hy, cmap= ay)
#⽤gist_earth⾊带渲染⾼程样式图
ax = plt.figure(figsize=(9,9))
plt.imshow(hy, cmap= ist_earth)
#利⽤ArcGIS的空间分析扩展制作⼭体阴影分析图
arcpy.CheckOutExtension("Spatial")
spring festival手抄报文字#太阳⾼度⾓
azimuth = 315.0
#太阳⽅位⾓
altitude = 45.0
shell自动化测试直播hs = arcpy.sa.Hillshade(ras, azimuth, altitude)
ax = plt.figure(figsize=(9,9))
plt.imshow(arcpy.RasterToNumPyArray(hs), cmap= ay) #联合渲染
python代码画图案ax = plt.figure(figsize=(9,9))
plt.imshow(arcpy.RasterToNumPyArray(hs), cmap= ay) plt.imshow(hy, cmap= ist_earth,alpha=0.8)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论