首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lambert共形投影中的朱莉娅变换纬度经度

Lambert共形投影中的朱莉娅变换纬度经度
EN

Stack Overflow用户
提问于 2021-12-22 08:02:31
回答 1查看 121关注 0票数 2

我从HRRR下载了数据,类似于此笔记本中的grib2文件:

https://nbviewer.org/github/microsoft/AIforEarthDataSets/blob/main/data/noaa-hrrr.ipynb

我现在想用这些数据来表示特定经度,纬度。但我不知道如何将我的(经度,纬度)转换为矩阵数据中的网格坐标。

笔记本提到“HRRR数据来自Lambert共形投影”。(见第8号牢房)。

我看过格林尼治标准时间包,他们似乎处理兰伯特共形投影:实例/

但是如何转换坐标呢?

下面的代码似乎是转换的,但我不认为这是针对Lambert的,在查看GMT文件之后,我无法调整命令中的设置。

代码语言:javascript
复制
lat=37.0; lon=-119.0;

gmt("mapproject -J+proj=merc", [lat;lon])
Vector{GMTdataset} with 1 segments
First segment DATA
Global BoundingBox:    [-1.3247019404399555e7, 4.118821159351122e6]
First seg BoundingBox: [-1.3247019404399555e7, 4.118821159351122e6]
2×1 Matrix{Float64}:
  4.118821159351122e6
 -1.3247019404399555e7
EN

回答 1

Stack Overflow用户

发布于 2021-12-22 11:57:00

我发现经度和纬度实际上在grib文件中,因此不需要转换:

代码语言:javascript
复制
  using GRIB
  f = GribFile(grb2_filename)
  
  lons, lats, values = data(Message(f))
  # lons in range [225.90452026573686, 299.0828072281622]   = [-134.09547973426314, -60.91719277183779]
  # lats in range [21.138123000000018, 52.61565330680793]

因此,我们只需查找最近的经度和纬度的索引,并以值读取相应的值。

由于lat和lon的距离都接近110公里,所以我将把距离最小化如下:

代码语言:javascript
复制
(min_error, coord) = findmin(abs.(lats .- lat) .+ abs.(lons .- 360 .- lon))
(0.020456228700048484, CartesianIndex(269, 548))

values[coord]
294.8936767578125

虽然这实际上没有回答标题问题,但它满足了我目前的需要,也许对其他人有用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70445896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档