在Python中的地图上绘制Cassini-Soldner投影中的RGB卫星图像

时间:2016-09-20 09:48:35

标签: python matplotlib gdal imshow cartopy

我有一个地理参考的RGB卫星图像来自MODIS仪器的geotiff格式。 使用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代码的投影。所以我用Google搜索了Cassini-Soldner EPSG代码(9806),但是卡车ccrs.epsg()并没有认出它。

我想使用plt.imshow()方法,但是我在创建轴时使用什么作为投影关键字以及在{{1}中作为transform=参数传递的内容时感到困惑}}

1 个答案:

答案 0 :(得分:0)

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

出于兴趣,你是如何通过卡西尼投影MODIS RGB来的?

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

编辑:此功能在v0.15