gpt4 book ai didi

python - 从proj4参数构建cartopy CRS

转载 作者:行者123 更新时间:2023-12-01 07:52:17 28 4
gpt4 key购买 nike

我下载了 MODIS .hdf 文件。使用 xarray 加载它,它给了我一个属性 ds.Proj4String == ' +a=6378137.0 +b=6356752.3142451793 +no_defs +proj=latlong\n'

如何使用该字符串将原始坐标转换为例如纬度/经度?

数据如下:

<xarray.Dataset>
Dimensions: (XDim:mod06: 1503, YDim:mod06: 833)
Dimensions without coordinates: XDim:mod06, YDim:mod06
Data variables:
Cloud_Optical_Thickness (YDim:mod06, XDim:mod06) float32 ...
Attributes:
HDFEOSVersion: HDFEOS_V2.19
StructMetadata.0: GROUP=SwathStructure\nEND_GROUP=SwathStructure\nGROUP=...
CoreMetadata: \nGROUP = INVENTORYMETADATA\n GROUPTYPE = MASTERGROUP...
ArchiveMetadata: GROUP = ARCHIVEDMETADATA\n GROUPTYPE = MASTERGROUP\n\...
Proj4String: +a=6378137.0 +b=6356752.3142451793 +no_defs +proj=lat...

docs告诉我将 proj4_params 作为键值对传递,所以我去

ss = ds.Proj4String.split()
proj = {}
for s in ss:
k = s.split('=')
if len(k)==2:
proj[k[0][1:]] = k[1]
print(proj)

并到达{'a': '6378137.0', 'b': '6356752.3142451793', 'proj': 'latlong'},但是ccrs.CRS(proj) 仍然抛出有关属性 globe 丢失的错误。

最佳答案

尚不支持仅从 proj.4 字符串创建 CartoPy 投影,请参阅 this PR 。您使用的 CRS 类本身不足以在 CartoPy 中创建功能齐全的投影,并且实际上被设计为其他投影的基类。

就您收到的错误而言,无论 proj4_params 中传递的内容如何,​​globe 都是必需参数。您可以使用以下内容创建 Globe 实例:

globe = ccrs.Globe(semimajor_axis=proj.pop('a'), semiminor_axis=proj.pop('b'))

关于python - 从proj4参数构建cartopy CRS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56150913/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com