Wentao Li
Wentao Li
在 `get_adm_maps` 选取省/市/县时,只能传入单个,如果我们想要同时选择河南省和安徽省,要么就要写一个循环查找这两个,要么就是一次性查找省级地图,以 geopandas 引擎返回后再在 GeoDataFrame 里筛选。 我认为应该在传入查找名称时,可以传入一个列表,然后在查库的时候就把这多个省市的数据直接查了,让地图查找更优雅。 类似这样的用法: ```python from cnmaps import get_adm_maps some_provinces = get_adm_maps(province=['河南省', '安徽省'], levels='省') ```
在 Intel MacBook Pro 上的测试,下列脚本在1.1.0版本下的执行耗时仍然需要大约1分钟左右才能出图,这速度有点无法接受,这个慢的主要原因是矢量边界过于精细,需要处理的点太多,计算压力大。但是对于类似下面这种尺度的绘图,其实并不需要这么精细的边界数据,因此可以尝试将其精细度进行简化,达到一个不那么精细,但是出图效果从肉眼也察觉不出来的那种程度。 geopandas 提供了 [simplify](https://geopandas.org/en/stable/docs/reference/api/geopandas.GeoSeries.simplify.html) 的函数 ```python import time import numpy as np import matplotlib.pyplot as plt import cartopy.crs as ccrs from cnmaps import get_adm_maps, clip_contours_by_map, draw_map...
经过比对,同为山西省的矢量数据,用 geojson 存储的文件大小是 360kb ,而用 topojson 存储的文件大小仅为 85kb,在QGIS中检查二者在精确程度上没有任何区别。 但 topojson 是一个小众的格式,对应的 python sdk 功能并不完善,如果使用 topojson 来存储的话,对于格式的各种转换会产生额外的开销,但同时 topojson 有另一个好处是它可以很方便对矢量数据进行精细度调整并不破坏其拓扑关系。 参考资料: * https://mattijn.github.io/topojson/ * https://zhuanlan.zhihu.com/p/361132666
山地阴影图示例:http://www.clarmy.net/2022/02/19/how-to-draw-pretty-hillshade-with-python/
根据传入的经纬度范围返回合适分辨率的地形数据并绘图 参考资料: 1. https://github.com/tangrams/heightmapper 2. https://www.nextzen.org/
## 案例1 ``` Collecting fiona>=1.8 (from geopandas->cnmaps) Using cached https://files.pythonhosted.org/packages/67/5c/4e028e84a1f0cb3f8a994217cf2366360ca984dfc1433f6171de527d0dca/Fiona-1.8.21.tar.gz ERROR: Complete output from command python setup.py egg_info: ERROR: A GDAL API version must be specified. Provide a path to...