Grib2 到 PostGIS 栅格 - 有人可以让它工作吗?

Posted

技术标签:

【中文标题】Grib2 到 PostGIS 栅格 - 有人可以让它工作吗?【英文标题】:Grib2 to PostGIS raster -- anyone get this to work? 【发布时间】:2012-05-25 11:15:29 【问题描述】:

我有一个应用程序需要导入美国国家气象局的表面分析,这些分析以grib2 文件的形式分发。我想将它们拉入 PostGIS 2.0 栅格,进行一些计算和建模,并在 GeoServer 中显示数据和模型结果。

由于 grib2 是 GDAL 支持的格式,因此提供的 raster2pgsql 实用程序应该能够将 grib2 直接插入到与 PostGIS 兼容的 SQL 中,一旦它存在,GeoServer 应该能够处理它。但是,我遇到了没有明显解决方案的问题——至少对我来说并不明显! Raster2pgsql 运行,显然没有错误,生成 SQL,运行 SQL 创建看起来非常像光栅的东西。但是 GeoServer 无法显示它——尤其是边界看起来很奇怪 (0,0 -1,-1),并且“预览层”只会抛出 NullPointerException。

有人已经走这条路了吗?我遇到了一些基本问题,比如不知道数据的 SRID 应该是什么(也许是 4326?)。我不希望任何人为我调试我的问题,但如果有人已经让这个工具链或其中的一部分工作,我可以插入已知好的东西,看看我能发现什么。

TIA,

rw

更新:Per Mike,这是其中一个文件的坐标系内容;我省略了“gdalinfo”输出中的其他 749 个波段。请注意,文件名不同——我通过在原始文件上运行“gdalinfo”发现它有问题,gdalinfo 无法读取它。新(35MB!)文件here。

Gdalinfo 输出:

Driver: GRIB/GRIdded Binary (.grb)
Files: ruc2.t00z.bgrb13anl.grib2
Size is 451, 337
Coordinate System is:
PROJCS["unnamed",
    GEOGCS["Coordinate System imported from GRIB file",
        DATUM["unknown",
            SPHEROID["Sphere",6371229,0]],
        PRIMEM["Greenwich",0],
        UNIT["degree",0.0174532925199433]],
    PROJECTION["Lambert_Conformal_Conic_2SP"],
    PARAMETER["standard_parallel_1",25],
    PARAMETER["standard_parallel_2",25],
    PARAMETER["latitude_of_origin",0],
    PARAMETER["central_meridian",265],
    PARAMETER["false_easting",0],
    PARAMETER["false_northing",0]]
Origin = (-3332155.288903323933482,6830293.833488883450627)
Pixel Size = (13545.000000000000000,-13545.000000000000000)
Corner Coordinates:
Upper Left  (-3332155.289, 6830293.833) (139d51'22.04"W, 54d10'20.71"N)
Lower Left  (-3332155.289, 2265628.833) (126d 6'34.06"W, 16d 9'49.48"N)
Upper Right ( 2776639.711, 6830293.833) ( 57d12'21.76"W, 55d27'10.73"N)
Lower Right ( 2776639.711, 2265628.833) ( 68d56'16.73"W, 17d11'55.33"N)
Center      ( -277757.789, 4547961.333) ( 98d 8'30.73"W, 39d54'5.40"N)
Band 1 Block=451x1 Type=Float64, ColorInterp=Undefined
  Description = 1[-] HYBL="Hybrid level"
  Metadata:
    GRIB_UNIT=[Pa]
    GRIB_COMMENT=Pressure [Pa]
    GRIB_ELEMENT=PRES
[Etc., Etc., for all 750 bands]

【问题讨论】:

您能否在栅格上运行gdalinfo your.grb 并更新您的问题?您可能希望将其迁移到 gis.SE 迈克,感谢您的回复!实际上我也确实把它放在了 gis.se 上,我脸红地说。但我在此发誓,我将在这两个线程上进行处理,这样就没有人回答一个已经回答的问题了!那么我下一步是否要通过 EPSG 列表寻找匹配的内容,以便我可以输入 raster2pgsql 的 SRID?不确定如何“重新投影”GRIB2 文件! TIA^2! 【参考方案1】:

我希望这会有所帮助,至少那些来到这个帖子的人是这样。

请记住,GeoServer 虽然能够从 PostGIS 加载栅格数据,但默认的 PostGIS“导入”模块仅适用于矢量数据,这就是为什么你会得到那些奇怪的边界 (-1 -1 0 0)。

您必须将 ImageMosaicJDBC 插件添加到您的地理服务器安装中,请按照此处的步骤操作!

http://docs.geoserver.org/latest/en/user/tutorials/imagemosaic-jdbc/imagemosaic-jdbc_tutorial.html

【讨论】:

【参考方案2】:

我的问题here 得到了很好的回答。把它作为一个单独的答案。

他建议使用 gdalwarp 将 GRIB2 文件拉入已知的 SRID,因此:

gdalwarp -t_srs EPSG:4326 original_file.grib2 4326_file.grib2

然后,raster2pgsql 就可以正常工作了,例如

raster2pgsql -M -a 4326_file.grib2 some_sql.sql

【讨论】:

以上是关于Grib2 到 PostGIS 栅格 - 有人可以让它工作吗?的主要内容,如果未能解决你的问题,请参考以下文章

有人说矢量数据的实质还是栅格数据,怎么理解这句话???

如何将 postgis 对象和函数定义加载到单独的模式中?

GeoServer Image Mosaics:PostGIS 索引表上的查询超过最大连接限制

通过 psycopg2 访问表的栅格列

将 grib2 文件转换为 csv

bootstrap栅格系统的div高度怎样定