• 【616】安装 GDAL(rasterio)


    参考:

      Windows 电脑很容易,但是 Mac 很不好装(目前还没装上,可能是系统版本,可能是 python 版本)

    Windows 版:

    MacOS 版:

      未完待续

    参考:使用Rasterio读取栅格数据

    参考:rasterio 官方 Tutorial

      虽然没装上 GDAL,不过找到了替代方案 rasterio,安装超级简单,直接通过 pip install rasterio 即可

      相关功能说明:

    • 数据读取:ds = rasterio.open

    • 波段数目:ds.count

    • 影像宽度:ds.width

    • 影像高度:ds.height

    • 地理范围:ds.bounds,可以获取四个顶点的经纬度 

      • BoundingBox(left=121.5971892, bottom=31.2733359001, right=121.5989442, top=31.2750909001)
      • ds.bounds.left
    • 获取波段:band1 = ds.read(1), band2 = ds.read(2), band3 = ds.read(3), 获取第 一/二/三 个波段数据,跟GDAL一样索引从1开始,直接获得 numpy.ndarray 类型的二维数组表示,如果 read() 函数不加参数,则得到所有波段(第一个维度是波段,直接输入神经网络会有问题,一般是波段放在第三维)

    • ds.transform:返回一个 6 个值的 tuple。

      • Affine(2.7000000000043656e-06, 0.0, 121.5971892,
               0.0, -2.6999999999988997e-06, 31.2750909001)
      • # transform[0]: 影像宽度方向上的分辨率(经度范围/像素个数),经度往右/东 变大,因此是正

      • # transform[1]: 旋转,0 表示上面为北方

      • # transform[2]: 左上角像素经度

      • # transform[3]: 旋转,0 表示上面为北方

      • # transform[4]: 影像高度方向上的分辨率(纬度范围/像素个数),纬度往下/南 变小,因此是负

      • # transform[5]: 左上角像素纬度

      • # 从左边的经度值推导出右边的经度值
        ds.transform[2] + ds.transform[0] * ds.width == ds.bounds.right 
        # True
        
        # 从上面的纬度值推导出下面的纬度值
        ds.transform[5] + ds.transform[4] * ds.height == ds.bounds.bottom
        # True
    • 通过放射计算,可以直接计算指定像素对的经纬度信息,与下面的操作正好相反

      • # 左上角的经纬度
        ds.transform * (0, 0) 
        
        # (121.5971892, 31.2750909001)
        
        # 右下角的经纬度
        ds.transform * (ds.width, ds.height)
        
        # (121.5989442, 31.2733359001)
    • ds.index(121.5989442, 31.2733359001):获取输入经纬度对应的图像像素对,可以用于矢量转栅格的相应计算

    • 图像显示:

      • # 可以直接显示 uint16 的图像(很多数据点超过255,不能直接显示)
        # 其他正常的显示需要 uint8 的图像
        
        from rasterio.plot import show 
        show(ds) 
        
  • 相关阅读:
    vue使用talkIngData统计
    vue项目中使用百度统计
    vue的指令修饰符
    提问:
    整理心情再投入下一个阶段
    CSS写三角形
    单行文本和多行文本超出隐藏
    清除浮动的方法
    用JS表示斐波拉契数列
    vue中使用动态挂载和懒加载,实现点击导航栏菜单弹出不同弹框
  • 原文地址:https://www.cnblogs.com/alex-bn-lee/p/15033900.html
Copyright © 2020-2023  润新知