在本文中,我们将使用 Wildland Fire Interagency Geospatial Services (WFIGS) 2022 数据集,并仅关注新墨西哥州的 Hermit's Peak / Calf Canyon 火灾。这场野火是该州历史上规模最大的野火,烧毁面积超过 30 万英亩。大火位于陶斯和圣达菲之间,烧毁了桑格雷德克里斯托山脉的高海拔木材。我们将把 WFIGS 为这次火灾提供的 geojson 细分为 243 个六边形图块,以便在另一篇文章中进行更深入的分析。
数据参考:
GitHub - rchardptrsn/ndvi-wildfires: Downloads MODIS NDVI data using Google Earth Enginehttps://github.com/rchardptrsn/ndvi-wildfires
目录:
- 使用 Uber 的 H3 python 库将多重多边形细分为一系列六角形多边形。
- 使用shapely函数创建所有六边形的外边界多边形
.unary_union
- 创建一个新的多边形,使用 GeoPandas 函数捕获原始多边形和六边形边界多边形之间的差异(以平方公里为单位)
overlay
。 - 使用 GeoPandas 函数计算多边形差异面积
area
。 - 使用 python Folium 库可视化所有四个 GeoDataFrame(原始 geoJSON、六边形图块、六边形边界、多边形增量)。
需要的Python库:
import geopandas as gpd
import h3pandas
import folium
import json
import pandas as pd
from shapely.geometry import mapping
将多重多边形细分为一系列六边形多边形
# Read in data
gdf = gpd.read_file('hermits_peak_calf_canyon_fire_bounds.geojson')
gdf.plot()
从图中可以看出,这是一个 MULTIPOLYGON 特征。因此,我们需要将每个多边形爆炸到 GeoDataFrame 中自己的行。
gdf_exp = gdf.explode()
然后我们使用 Uber H3 库(层次空间索引)从多边形生成六边形网格。对于此分析,我们使用分辨率 7,这将生成 243 个六边形。