geopandas - Python统一两个地理系统
问题描述
我正在尝试统一 shp 文件和 DEM 文件的地理系统。我试图用来rasterstats.zonal_stats
查找这两个数据之间的重叠,但它返回无。所以我认为地理系统存在一些问题。
我使用 geopandas 打印了 shp 文件 crs。crs 显示
<Projected CRS: EPSG:26917>
Name: NAD83 / UTM zone 17N
Axis Info [cartesian]:
- E[east]: Easting (metre)
- N[north]: Northing (metre)
Area of Use:
- name: North America - between 84°W and 78°W - onshore and offshore. Canada - Nunavut; Ontario; Quebec. United States (USA) - Florida; Georgia; Kentucky; Maryland; Michigan; New York; North Carolina; Ohio; Pennsylvania; South Carolina; Tennessee; Virginia; West Virginia.
- bounds: (-84.0, 23.81, -78.0, 84.0)
Coordinate Operation:
- name: UTM zone 17N
- method: Transverse Mercator
Datum: North American Datum 1983
- Ellipsoid: GRS 1980
- Prime Meridian: Greenwich
DEM文件的crs是rasterio得到的,它显示crs是
CRS.from_epsg(26917)
看起来这两个文件都在使用 CRS 26917。但是当我绘制这两个文件时。shp 文件的 x 轴从 -81.9 到 -81.5。DEM文件的x轴是从420000到500000。所以geo系统肯定有问题。
我应该如何统一这两个,以便我可以将它们绘制在同一张图片中并执行rasterstats.zonal_stats
?
解决方案
重新投影栅格比在 geopandas 中更改几何图形的 crs 更复杂;所以如果知道DEM的crs,改shp文件的crs可能会更快。gdf.to_crs(raster_crs)
如果 DEM 的 CRS 未知,则应优先使用 QGIS 的 TSM 找到正确的 CRS。(显示 OSM 等在线地图后,输入栅格并确保其代表正确的位置。)
接下来要做的是使用 shp 裁剪栅格。使用栅格时,这称为 MASK。请参考以下链接。
https://rasterio.readthedocs.io/en/latest/topics/masking-by-shapefile.html
推荐阅读
- javascript - 如何使用 Fetch 添加动态 URL?
- javascript - 显示带有下标(或下标)样式的菜单项标签
- java - 在被引用为匿名内部类的替代品的视频中看到了这个,它是什么?
- python - 从python中的多个列表中随机选择
- angular - Jhipster 启动非常慢 - 启动空白引导应用程序需要 2 小时
- python - 使用 Pandas(Python) 从 Google Drive 读取非常大的 csv 文件
- sql - 如何在sql中找到count的最大值和最小值
- javascript - 如何在 Selenium Webdriver Javascript 中保存为网页?
- flutter - Flutter - 如何在多个地方重用一些代码
- elasticsearch - 如何在弹性搜索中匹配两个索引之间的数据