Silent&Smile 2024-01-12 10:52 采纳率: 0%
浏览 7

grid = Grid.from_raster(dem_path)报错

from pysheds.grid import Grid
import matplotlib.pyplot as plt

dem_path = 'DEM/DemMeter1.tiff'

使用pysheds读取栅格文件grid = Grid.from_raster(dem_path)报错:nodata value not representable in dtype of array.如何处理?

from pysheds.grid import Grid
dem_path = 'DEM/DemMeter1.tiff'
grid = Grid.from_raster(dem_path)

TypeError: `nodata` value not representable in dtype of array.

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-01-12 12:12
    关注

    【以下回答由 GPT 生成】

    **回答:**
    这个问题通常是由于栅格文件中的无数据值(nodata value)与numpy数组的数据类型不兼容导致的。解决这个问题可以通过以下步骤:
    
    1. 确认栅格文件中的无数据值是什么,可以使用GIS软件或者查看DEM文件的元数据。
    2. 使用GDAL库读取栅格文件,并指定无数据值,然后再将其转换为numpy数组。
    
    下面是具体的代码示例:
    
    ```python
    from osgeo import gdal
    import numpy as np
    from pysheds.grid import Grid
    import matplotlib.pyplot as plt
    
    dem_path = 'DEM/DemMeter1.tiff'
    
    # 使用GDAL读取栅格文件
    ds = gdal.Open(dem_path)
    
    # 获取无数据值
    nodata = ds.GetRasterBand(1).GetNoDataValue()
    
    # 将栅格文件转换为numpy数组,并指定无数据值
    dem_array = ds.ReadAsArray()
    dem_array[dem_array == nodata] = np.nan
    
    # 在将数组传递给pysheds库
    grid = Grid.from_array(dem_array, nodata=np.nan)
    
    # 现在应该可以顺利执行了
    

    通过上述方法,你应该可以成功解决grid = Grid.from_raster(dem_path)报错nodata value not representable in dtype of array的问题。 ```


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 修改了问题 1月12日
  • 创建了问题 1月12日

悬赏问题

  • ¥30 模拟电路 logisim
  • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价