如何在Oracle SQL中获取地理栅格中多个像元的值

vojdkbi0  于 2023-08-04  发布在  Oracle
关注(0)|答案(1)|浏览(77)

我使用SDO_GEORASTER在Oracle DB中存储栅格数据。我已将高程数据存储在名为DEM_RASTER_6的georaster表中。当输入单元格的位置(纬度和经度)时,我想找到该单元格的高程。
我使用下面的SQL查询对位置(139.6532351,35.646544),(137.15862129082493,35.08569941846463)和(130.40386925062816,33.597688116260485)进行了处理,并且使用sdo_geor.getcellvalue函数运行良好。

SELECT
sdo_geor.getcellvalue(
raster,
0,sdo_geometry(2001, 4326
--,sdo_point_type( 139.6532351, 35.646544, NULL)
,sdo_point_type( 137.15862129082493, 35.08569941846463, NULL)
--,sdo_point_type( 130.40386925062816, 33.597688116260485, NULL)
,NULL, NULL),
1) dem_value
FROM DEM_RASTER_6 a
where
 sdo_anyinteract( a.raster.SPATIALEXTENT,
   sdo_geometry(2001, 4326
     -- ,sdo_point_type( 139.6532351, 35.646544, NULL),
     --  ,sdo_point_type( 130.40386925062816, 33.597688116260485, NULL),
     ,sdo_point_type( 137.15862129082493, 35.08569941846463, NULL),
   NULL, NULL)
 ) = 'TRUE' ;

字符串
上面的查询一次只对一个点起作用。现在我的问题是,如果我们需要在多个点同时找到单元格值,那么我们可以使用sdo_geor.getcellvalues()函数吗?
为此,我尝试了下面的SQL

SELECT
sdo_geor.getcellvalues( 
        raster
        , 0
        , sdo_geometry(
        2005
        ,4326
        ,NULL
        ,SDO_ELEM_INFO_ARRAY(1,1,3)
        ,SDO_ORDINATE_ARRAY(130.40386925062816, 33.597688116260485, 139.6532351, 35.646544, 137.15862129082493, 35.08569941846463)
        ),
        1) dem_value
FROM DEM_RASTER_6 a
  where
 sdo_anyinteract( a.raster.SPATIALEXTENT,
  sdo_geometry(
        2005--multipoint
        ,4326
        ,NULL
        ,SDO_ELEM_INFO_ARRAY(1,1,3)--multipoint with 3 points
        ,SDO_ORDINATE_ARRAY(130.40386925062816, 33.597688116260485, 139.6532351, 35.646544, 137.15862129082493, 35.08569941846463)-- 3 sets of coor for multipoints
        )
 ) = 'TRUE' ;


我得到了错误:,但我得到错误ORA-13415:无效或超出范围点规范ORA-06512:在“MDSYS.SDO_GEOR_INT”,第7965行ORA-06512:在“MDSYS.SDO_GEOR”,第3311和13415行。00000 -“无效或超出范围点规范”* 原因:由< ptGeom,layerNumber>或< rowNumber,colNumber,bandNumber>参数组合指定的点位置无效或超出范围。* 操作:确保参数指定的有效点是或可以转换为GeoRaster对象的单元空间内的单元位置。
是我使用sdo_geor.getcellvalues()的方式不对,还是有其他函数可以使用?

czfnxgou

czfnxgou1#

这是错误31184230。补丁程序适用于19.6、19.8、19.9和19.10。版本19.11和更高版本包含该修复。请与Oracle支持部门联系以获取修补程序,或升级到19.11或更高版本。

相关问题