如何将光栅读取为阵列?

2024-04-28 02:04:28 发布

您现在位置:Python中文网/ 问答频道 /正文

  from pyrsgis import raster
  from pyrsgis.convert import changeDimension

  # Assign file names

  greenareaband1='Sentinel-2  (2)dense.tiff'
  greenareaband2='Sentinel-2 L1C  (3)dense.tiff'
  greenareaband3='Sentinel-2 L1C  (4)dense.tiff'


  # Read the rasters as array
  df,myimage=raster.read(greenareaband1,bands='all')


  AttributeError: 'NoneType' object has no attribute 'ReadAsArray'

我一直收到这个错误,但我确信我已经使用 从google.colab导入文件 files.upload()文件


Tags: 文件fromimportconvertnamesdensefilesentinel
0条回答
网友
1楼 · 发布于 2024-04-28 02:04:28

你这里有几个问题。在文件名中使用两个空格和括号是Python中最不希望做的事情。确保已将工作目录更改为文件所在的位置,或提供相对路径,并在开头添加“r”。例如:

input_file = r'E:/path_to_your_file/raster_file.tif'
ds, data_arr = raster.read(input_file)

关于与Colab合作。我认为最好的选择是将您的文件上传到您的谷歌硬盘上,然后验证您的Colab脚本以装载硬盘。然后您只需更改工作目录,如下所示:

# authenticate google drive
from google.colab import drive
drive.mount('/content/drive')

# change working directory
os.chdir(r'/content/drive/My Drive/path_to_your_file')

或者,安装驱动器后,只需执行以下操作:

input_file = r'/content/drive/My Drive/path_to_your_file/raster_file.tif'
ds, data_arr = raster.read(input_file)
网友
2楼 · 发布于 2024-04-28 02:04:28

我也有同样的问题,我发现我在分配文件名时犯了一个错误。可能存在错误,因此无法将其识别为tif,从而可以读取阵列()。希望这是唯一的问题

相关问题 更多 >