【问题标题】:Plot RGB satellite image in Cassini-Soldner projection on a map in Python在 Python 中的地图上绘制 Cassini-Soldner 投影中的 RGB 卫星图像
【发布时间】:2016-09-20 09:48:35
【问题描述】:

我有一张来自 MODIS 仪器的 geotiff 格式的地理参考 RGB 卫星图像。 使用 cartopy 在地图上绘制并保留 RGB 颜色的正确方法是什么?

我猜主要的障碍是Cassini-Soldner图像的投影:

import numpy as np
from osgeo import gdal, osr

ds = gdal.Open('modis_201303261252_rgb.tif')

print(ds.GetGeoTransform())
(-1669791.8857914428, 250.0, 0.0, 1669792.327327792, 0.0, -250.0)

proj = ds.GetProjection()

inproj = osr.SpatialReference()
inproj.ImportFromWkt(proj)
print(inproj)

PROJCS["unnamed",
    GEOGCS["unnamed ellipse",
        DATUM["unknown",
            SPHEROID["unnamed",6378137,0]],
        PRIMEM["Greenwich",0],
        UNIT["degree",0.0174532925199433]],
    PROJECTION["Cassini_Soldner"],
    PARAMETER["latitude_of_origin",72],
    PARAMETER["central_meridian",-4],
    PARAMETER["false_easting",0],
    PARAMETER["false_northing",0],
    UNIT["metre",1,
        AUTHORITY["EPSG","9001"]]]

我试图遵循这个例子https://ocefpaf.github.io/python4oceanographers/blog/2015/03/02/geotiff/ 并使用 cartopy 定义 EPSG 代码的投影。所以我用谷歌搜索了 Cassini-Soldner EPSG 代码 (9806),但 cartopy 的 ccrs.epsg() 无法识别它。

我想使用plt.imshow() 方法,但我有点困惑在创建轴时使用什么作为投影关键字以及在imshow 中作为transform= 参数传递什么。

【问题讨论】:

    标签: python matplotlib gdal imshow cartopy


    【解决方案1】:

    (我会将此作为评论添加,但我需要 50 个代表。)

    出于兴趣,卡西尼投影MODIS RGB是怎么来的?

    另一种方法是使用我提出的 Cartopy 拉取请求,它允许将时间维度与 GeoAxes.add_wmts() 一起使用,这样您就可以将 MODIS RGB 图像块从 NASA GIBS 直接拉入Cartopy GeoAxes:https://github.com/SciTools/cartopy/pull/788

    编辑:此功能在 v0.15 中

    【讨论】:

    • 我从英国邓迪大学的 NEODAAS NERC 卫星接收站 (sat.dundee.ac.uk) 得到它。谢谢你的建议,我去看看你的 PR。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    相关资源
    最近更新 更多