兰伯特等角圆锥地图投影在java中获取网格的x,y值
我正在使用 unidata 中的 NetCDF 4 java 库来读取 GRIB2 文件,现在正在尝试找到一种方法获取给定纬度/经度的时区偏移量。 我有一个北半球的 .flt 文件,其中包含所有这些信息,我知道如何阅读它,我只是不知道如何正确进行地图投影。 我可以使用进行投影 LambertConformal(originLat, originLon, stdParallel1, stdParallel2) 但我不知道如何使用网格内的投影 x,y 值。
网格值为 Nx=1073 和 Ny=689,我得到的 lat=33.92、lon=-84.33 的投影值是 x=995 y=1035。 我知道投影值是正确的,但我不知道如何用它们读取网格。
也许有人也可以帮助我理解以下价值观。
:grid_mapping_name = "lambert_conformal_conic"; :标准并行= 25.0; // 双倍的 :中央子午线经度 = 265.0; // 双倍的 :投影原点纬度 = 25.0; // 双倍的 :earth_shape = "地球球形,半径由生产者指定"; :spherical_earth_radius_meters = 6371200.0; // 双倍的 :GRIB_param_Dx = 5079.4062; // 双倍的 :GRIB_param_Dy = 5079.4062; // 双倍的 :GRIB_param_GDSkey = 1158554943; // 整数 :GRIB_param_La1 = 20.192; // 双倍的 :GRIB_param_LaD = 25.0; // 双倍的 :GRIB_param_Latin1 = 25.0; // 双倍的 :GRIB_param_Latin2 = 25.0; // 双倍的 :GRIB_param_Lo1 = 238.446; // 双倍的 :GRIB_param_LoV = 265.0; // 双倍的 :GRIB_param_NpProj = "真"; :GRIB_param_Nx = 1073; // 整数 :GRIB_param_Ny = 689; // 整数 :GRIB_param_ProjFlag = 0; // 整数 :GRIB_param_Quasi = "假"; :GRIB_param_ResCompFlag = 0; // 整数 :GRIB_param_SpLat = -90.0; // 双倍的 :GRIB_param_SpLon = 0.0; // 双倍的 :GRIB_param_Winds = "真"; :GRIB_param_grid_name = "兰伯特等形"; :GRIB_param_grid_radius_spherical_earth = 6371200.0; // 双倍的 :GRIB_param_grid_shape = "地球球形,半径由生产者指定"; :GRIB_param_grid_shape_code = 1; // 整数 :GRIB_param_grid_type = 30; // 整数 :GRIB_param_grid_units = "米";
I am using the NetCDF 4 java library from unidata to read GRIB2 files and am now trying to find a way to get timezone offsets for a given latitude/longitude. I have a .flt file for the northern hemisphere that contains all of this information and I know how to read it, I just don't know how to do the map projection properly. I am able to do the projection using
LambertConformal(originLat, originLon, stdParallel1, stdParallel2) but I do not know how to use the projected x,y values inside the grid.
The grid values are Nx=1073 and Ny=689 and the projected values I'm getting for lat=33.92, lon=-84.33 are x=995 y=1035. I know the projected values are right, but I don't know how to read the grid with them.
Maybe someone can help me understand the following values, too.
:grid_mapping_name = "lambert_conformal_conic"; :standard_parallel = 25.0; // double :longitude_of_central_meridian = 265.0; // double :latitude_of_projection_origin = 25.0; // double :earth_shape = "Earth spherical with radius specified by producer"; :spherical_earth_radius_meters = 6371200.0; // double :GRIB_param_Dx = 5079.4062; // double :GRIB_param_Dy = 5079.4062; // double :GRIB_param_GDSkey = 1158554943; // int :GRIB_param_La1 = 20.192; // double :GRIB_param_LaD = 25.0; // double :GRIB_param_Latin1 = 25.0; // double :GRIB_param_Latin2 = 25.0; // double :GRIB_param_Lo1 = 238.446; // double :GRIB_param_LoV = 265.0; // double :GRIB_param_NpProj = "true"; :GRIB_param_Nx = 1073; // int :GRIB_param_Ny = 689; // int :GRIB_param_ProjFlag = 0; // int :GRIB_param_Quasi = "false"; :GRIB_param_ResCompFlag = 0; // int :GRIB_param_SpLat = -90.0; // double :GRIB_param_SpLon = 0.0; // double :GRIB_param_Winds = "True"; :GRIB_param_grid_name = "Lambert Conformal"; :GRIB_param_grid_radius_spherical_earth = 6371200.0; // double :GRIB_param_grid_shape = "Earth spherical with radius specified by producer"; :GRIB_param_grid_shape_code = 1; // int :GRIB_param_grid_type = 30; // int :GRIB_param_grid_units = "m";
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您是否尝试过在 Unidata 网站上发帖? 他们可能会更好地回答此类问题。 过去我从他们那里得到了很好的回应。
-弗雷德
Have you tried posting on the Unidata website? They would probably be better at answering this type of question. In the past I have gotten great responses from them.
-Fred