JDBC存储数据库结构

JDBC存储使用传统的关系结构,如下图所示:

../../_images/dbschema.png

所以 collection 有自己的主要搜索属性,以及:

  • 指向集合发布位置的零个或多个OGC链接

  • 层发布信息(用于自动生成马赛克、层和最终覆盖视图,以防实际数据驻留在本地)

  • 一种或多种产品

A product 依次关联到:

  • 以png或jpeg格式显示的缩略图

  • 指向产品发布位置的零个或多个OGC链接

这个 granule 表旨在包含每个产品文件的信息,以防希望从同一个本地GeoServer发布实际数据(但通常,OGC服务可能丢失或由单独的服务器提供)。

收藏

集合表当前如下所示(请检查安装说明中的SQL文件以获取其最新版本):

create table collection (
  "id" serial primary key,
  "name" varchar,
  "primary" boolean,
  "htmlDescription" text,
  "footprint" geography(Polygon, 4326),
  "timeStart" timestamp,
  "timeEnd" timestamp,
  "productCqlFilter" varchar,
  "masked" boolean,
  "eoIdentifier" varchar unique,
  "eoProductType" varchar,
  "eoPlatform" varchar,
  "eoPlatformSerialIdentifier" varchar,
  "eoInstrument" varchar,
  "eoSensorType" varchar check ("eoSensorType" in ('OPTICAL', 'RADAR', 'ALTIMETRIC', 'ATMOSPHERIC', 'LIMB')),
  "eoCompositeType" varchar,
  "eoProcessingLevel" varchar,
  "eoOrbitType" varchar,
  "eoSpectralRange" varchar,
  "eoWavelength" int,
  "eoSecurityConstraints" boolean,
  "eoDissemination" varchar,
  "eoAcquisitionStation" varchar,
  "queryables" varchar[],
  "workspaces" varchar[]
);

对于那些熟悉OGC地球观测术语的人来说,大多数属性应该是不言而喻的。在OpenSearch中,前缀为“eo”的每个属性都作为搜索属性公开,可以通过添加额外属性来修改结构,这些属性将显示出来并使其可搜索。

特定属性注释:

  • A primary 收集通常与特定的卫星/传感器相联系,并包含其自身的产品。将“PRIMARY”设置为FALSE会使集合成为“虚拟的”,并且 productCQLFilter 字段应填充CQL筛选器,该筛选器将收集集合中的所有产品(警告,虚拟集合目前基本上未进行测试)

  • 这个 footprint 字段用于空间搜索,而 timeStarttimeEnd 用于暂时的

  • 这个 htmlDescription 驱动Atom OpenSearch响应可见部分的生成,请参阅后面的专用部分以了解有关填充它的更多信息

  • 这个 workspaces 字段是一个数组,用于指定与集合关联的Geoserver工作空间。如果该字段为空或空,或者数组包含空值,则集合将与所有工作区相关联。如果填充了该字段,则该集合将仅与指定的工作区相关联,并且将对特定于工作区的STAC调用隐藏。

这个 collection_ogclink 表包含指向服务的OGC链接,这些服务提供对集合内容的可视化和下载访问。请参阅“OGC链接”部分以收集有关它的更多信息。

产品

product表当前如下所示(请检查安装说明中的SQL文件以获取其最新版本):

-- the products and attributes describing them
create table product (
  "id" serial primary key,
  "htmlDescription" text,
  "footprint" geography(Polygon, 4326),
  "timeStart" timestamp,
  "timeEnd" timestamp,
  "originalPackageLocation" varchar,
  "originalPackageType" varchar,
  "thumbnailURL" varchar,
  "quicklookURL" varchar,
  "crs" varchar,
  "eoIdentifier" varchar unique,
  "eoParentIdentifier" varchar references collection("eoIdentifier") on delete cascade,
  "eoProductionStatus" varchar,
  "eoAcquisitionType" varchar check ("eoAcquisitionType" in ('NOMINAL', 'CALIBRATION', 'OTHER')),
  "eoOrbitNumber" int,
  "eoOrbitDirection" varchar check ("eoOrbitDirection" in ('ASCENDING', 'DESCENDING')),
  "eoTrack" int,
  "eoFrame" int,
  "eoSwathIdentifier" text,
  "optCloudCover" int check ("optCloudCover" between 0 and 100),
  "optSnowCover" int check ("optSnowCover" between 0 and 100),
  "eoProductQualityStatus" varchar check ("eoProductQualityStatus" in ('NOMINAL', 'DEGRADED')),
  "eoProductQualityDegradationStatus" varchar,
  "eoProcessorName" varchar,
  "eoProcessingCenter" varchar,
  "eoCreationDate" timestamp,
  "eoModificationDate" timestamp,
  "eoProcessingDate" timestamp,
  "eoSensorMode" varchar,
  "eoArchivingCenter" varchar,
  "eoProcessingMode" varchar,
  "eoAvailabilityTime" timestamp,
  "eoAcquisitionStation" varchar,
  "eoAcquisitionSubtype" varchar,
  "eoStartTimeFromAscendingNode" int,
  "eoCompletionTimeFromAscendingNode" int,
  "eoIlluminationAzimuthAngle" float,
  "eoIlluminationZenithAngle" float,
  "eoIlluminationElevationAngle" float,
  "sarPolarisationMode" varchar check ("sarPolarisationMode" in ('S', 'D', 'T', 'Q', 'UNDEFINED')),
  "sarPolarisationChannels" varchar check ("sarPolarisationChannels" in ('horizontal', 'vertical')),
  "sarAntennaLookDirection" varchar check ("sarAntennaLookDirection" in ('LEFT', 'RIGHT')),
  "sarMinimumIncidenceAngle" float,
  "sarMaximumIncidenceAngle" float,
  "sarDopplerFrequency" float,
  "sarIncidenceAngleVariation" float,
  "eoResolution" float
);

属性说明:

  • 这个 footprint 字段用于空间搜索,而 timeStarttimeEnd 用于暂时的

  • 这个 htmlDescription 驱动Atom OpenSearch响应可见部分的生成,请参阅后面的专用部分以了解有关填充它的更多信息

  • 这个 crs 属性是可选的,仅用于具有异构CRS产品的集合的自动层发布。它必须包含一个“EPSG:XYWZ公司“表达式(但产品足迹仍需要用WGS84表示,面向东/北)。

  • EO搜索属性需要根据产品的性质填写, eo 前缀一般EOP属性, opt 光学的, sar 雷达信号, atm 高度测量, lmb 边缘, ssp 合成和系统产品。可以基于上述前缀添加新属性(在编写时,只测试了光学和sar属性)

这个 product_thumb 表包含产品缩略图(PNG或JPEG格式),用于在OpenSearch Atom输出中显示。

这个 product_ogclink 表包含指向服务的OGC链接,这些服务提供对集合内容的可视化和下载访问。请参阅“OGC链接”部分以收集有关它的更多信息。

颗粒表

颗粒表可以填充有关组成特定产品的实际栅格文件的信息,以便将集合发布为地理服务器图像马赛克:

-- the granules table (might be abstract, and we can use partitioning)
create table granule (
  "gid" serial primary key,
  "product_id" int not null references product("id") on delete cascade,
  "band" varchar,
  "location" varchar not null,
  "the_geom" geometry(Polygon, 4326) not null
);

与产品相关的颗粒可以具有不同的拓扑结构:

  • 包含产品所有信息的单个栅格文件

  • 多个栅格文件将产品在空间上按规则分块

  • 多个栅格文件按波长分割产品

  • 上面两个的混合

有关列的说明:

  • 这个 band 只需要为按波段拆分为多个文件的产品填写列,在编写时,该列需要是从1开始的累进整数(模块希望将来允许使用更有意义的波段名称)

  • 这个 location 是文件的绝对路径

  • 这个 the_geom 字段是wgs84中的一个多边形,不管文件的实际占地面积是多少。多边形必须表示栅格文件的矩形延伸,而不是其有效区域(要单独处理遮罩,要么使用侧车遮罩文件,要么使用nodata像素)