InVEST模型之年产水量模块(WaterYield)

做产水量时候有点小痛苦,数据太多了,也不好找,但也还好最终是完成了。

——————礼貌的分割线——————————

1️⃣产水量模块页面

 2️⃣数据及其预处理

1.土地利用数据,栅格,设置空间投影,重采样和重分类。

①掩膜提取所需要的研究区土地利用数据

②设置线性投影,即设置投影坐标系,将单位转为m

③重采样,将土地利用数据设置成所需要的大小。

④重分类,将重采样完的土地利用数据进行分类,一般可分六类,分别为:1耕地 2林地 3草地 4水域 5城乡、工矿、居民用地 6未利用地

若有更详细的二级分类也可,但要保证土地利用分类和威胁数据可以一一对应。

2.降水数据,年度数据集,栅格,单位为mm。

3.蒸发量,年度数据集,栅格,单位mm。

4.植物可用水分含量pawc,利用土壤数据根据周文佐的经验公式计算得到。

土壤数据来源:

FAO 和 IIASA 世界土壤数据库

pawc计算公式:

土壤数据中有后缀为T和S的两种砂砾、粉粒、粘粒,可分别计算一次,然后每个✖️0.5再加和得到pawc。(这个权重可以自己决定,我看的视频是赋值0.5)

5.根系限制层深度,可用基岩深度数据替代,单位为mm。

基岩深度数据:

基岩深度数据

6.生物物理表,csv表格,查阅文献获得。

7.z参数,一个数值。需先输入默认值,后结合水资源公报的数据进行调整。

8.流域,矢量,添加ws_id。

其余的数据我没有用到,就不清楚了。

注:以上数据需要设置个土地利用数据相同的投影坐标系和像元大小。

3️⃣结果查看:

 

 

由于没有提供具体的报错信息,以下是一些常见的Invest模型产水量功能报错及对应的解决方案: ### 数据问题 - **数据缺失或损坏**:Invest模型对输入数据的完整性和准确性要求较高。若输入的栅格数据、矢量数据等存在缺失值、损坏块或不完整,可能导致报错。需检查所有输入数据,使用专业的GIS软件(如ArcGIS、QGIS)打开数据,查看是否有异常值、缺失区域等。对于缺失的数据,尝试重新收集或插值填充;对于损坏的数据,需重新获取或修复。 ```python # 示例:使用Python和rasterio检查栅格数据是否有缺失值 import rasterio with rasterio.open('your_raster.tif') as src: data = src.read(1) if (data == src.nodata).any(): print("数据存在缺失值") ``` - **数据格式不兼容**:Invest模型支持特定的数据格式,如栅格数据一般要求为GeoTIFF格式,矢量数据要求为Shapefile格式等。若数据格式不兼容,需要进行转换。可以使用GIS软件或Python库(如GDAL)进行格式转换。 ```python # 示例:使用GDAL将其他格式的栅格数据转换为GeoTIFF格式 from osgeo import gdal input_raster = 'input_raster.img' output_raster = 'output_raster.tif' gdal.Translate(output_raster, input_raster) ``` - **数据投影不一致**:输入数据的投影系统必须一致,否则会导致空间位置不匹配,从而引发报错。使用GIS软件检查所有输入数据的投影信息,将投影不一致的数据进行投影转换,使其与其他数据投影一致。 ```python # 示例:使用rasterio进行栅格数据投影转换 import rasterio from rasterio.warp import calculate_default_transform, reproject, Resampling src_path = 'source_raster.tif' dst_path = 'destination_raster.tif' dst_crs = 'EPSG:4326' with rasterio.open(src_path) as src: transform, width, height = calculate_default_transform( src.crs, dst_crs, src.width, src.height, *src.bounds) kwargs = src.meta.copy() kwargs.update({ 'crs': dst_crs, 'transform': transform, 'width': width, 'height': height }) with rasterio.open(dst_path, 'w', **kwargs) as dst: for i in range(1, src.count + 1): reproject( source=rasterio.band(src, i), destination=rasterio.band(dst, i), src_transform=src.transform, src_crs=src.crs, dst_transform=transform, dst_crs=dst_crs, resampling=Resampling.nearest) ``` ### 软件配置问题 - **软件版本不兼容**:确保使用的Invest模型版本与操作系统、Python环境等兼容。若版本不兼容,可能会出现各种报错。可以从官方网站下载最新版本的Invest模型,或者根据操作系统和Python环境选择合适的版本进行安装。 - **Python环境问题**:Invest模型依赖于Python环境和一些第三方库。若Python环境配置不正确或缺少必要的库,可能导致报错。检查Python环境变量是否正确配置,确保Invest模型所需的第三方库(如NumPy、SciPy等)已正确安装。可以使用以下命令安装缺失的库: ```bash pip install numpy scipy ``` ### 参数设置问题 - **参数输入错误**:年产水量功能需要输入一些参数,如降雨数据、土壤数据等的相关参数。若参数输入错误,可能导致报错。仔细检查所有参数的输入值,确保其符合实际情况和模型要求。可以参考Invest模型的官方文档,了解每个参数的含义和取值范围。 ### 硬件资源问题 - **内存不足**:Invest模型在运行过程中需要占用一定的内存资源。若计算机内存不足,可能导致程序崩溃或报错。关闭其他不必要的程序,释放内存资源;或者考虑升级计算机的内存。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值