Python Georasters:将 geotiff 图像转换为 geopandas 数据框或 pandas 数据框?

hhh*_*hhh 8 geospatial python-3.x pandas geopandas

我想将 geotiff 文件转换为 geopandas 数据框或 pandas 数据框。我在这里找到了这个解决方案但是

#!pip3 install georasters

import georasters as gr
import pandas
myRaster = 'demo.tif'
elevation = gr.from_file(myRaster)
    
#elevation #<georasters.georasters.GeoRaster at 0x7f38507aff90>


#elevation = elevation.to_pandas()
#elevation = elevation.to_geopandas()
Run Code Online (Sandbox Code Playgroud)

但我收到错误ValueError: Must pass 2-d input. shape=(3, 1500, 3000)

下面是我从这里找到的示例 geotiff 。

在此输入图像描述

如何将 geotiff 文件转换为 pandas 数据框或 geopandas 数据框?

hhh*_*hhh 5

有多种技术可以将 Geotiff 转换为 Dataframe。我列出了迄今为止我已经有效的方法。我无法解决 Georasters 问题。

选项

  1. 首先将 tiff 文件转换为 CSV,然后转换为数据帧,命令行选项:

    $ pip3 install raster2xyz
    $ raster2xyz demo.tif out.csv        (marketed as faster alternative to gdal2xyz.py)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在Python中,

    from raster2xyz.raster2xyz import Raster2xyz
    
    input_raster = "demo.tif"
    out_csv = "demo_out_xyz.csv"
    
    rtxyz = Raster2xyz()
    rtxyz.translate(input_raster, out_csv)
    
    myRasterDF = pd.read_csv(out_csv)
    
    myRasterDF
    
    Run Code Online (Sandbox Code Playgroud)

其他有趣的问题

  1. 此处将 Geotiff 多边形化为 pandas 数据框

  2. 首先将 geotiff 转换为 CSV,然后将 CSV 转换为 pandas dataframe,相关问题请参见此处