EOX GitLab Instance

Skip to content
Snippets Groups Projects
Commit 07ca2aaf authored by Fabian Schindler's avatar Fabian Schindler
Browse files

Adding initial configs for registrators (emg/vhr)

Adding GSC scheme
Fixing EOxServer backend: multiple files per coverage type possible
parent 4518044a
No related branches found
No related tags found
3 merge requests!36Staging to master to prepare 1.0.0 release,!32Registrar modularization,!27Registrar modularization
sources:
- type: swift
name: !env '${UPLOAD_CONTAINER}'
kwargs:
username: !env '${OS_USERNAME}'
password: !env '${OS_PASSWORD}'
tenant_name: !env '${OS_TENANT_NAME}'
tenant_id: !env '${OS_TENANT_ID}'
region_name: !env '${OS_REGION_NAME}'
auth_version: !env '${ST_AUTH_VERSION}'
auth_url: !env '${OS_AUTH_URL}'
user_domain_name: !env '${OS_USER_DOMAIN_NAME}'
container: !env '${UPLOAD_CONTAINER}'
schemes:
- type: gsc
backends:
type: eoxserver
filter:
kwargs:
instance_base_path: /var/www/pvs/dev
instance_name: pvs_instance
mapping:
CS00:
~:
product_type_name: !env '${COLLECTION}_Product_CS00'
collections:
- !env '${COLLECTION}'
coverages:
CS00: sar_hh_gray
CS01:
~:
product_type_name: !env '${COLLECTION}_Product_CS01'
collections:
- !env '${COLLECTION}'
coverages:
CS01: sar_hh_gray
CS02:
~:
product_type_name: !env '${COLLECTION}_Product_CS02'
collections:
- !env '${COLLECTION}'
coverages:
CS02: sar_hh_gray
CS03:
~:
product_type_name: !env '${COLLECTION}_Product_CS03'
collections:
- !env '${COLLECTION}'
coverages:
CS03: sar_hh_gray
CS04:
~:
product_type_name: !env '${COLLECTION}_Product_CS04'
collections:
- !env '${COLLECTION}'
coverages:
CS04: sar_hh_gray
DM01:
~:
product_type_name: !env '${COLLECTION}_Product_DM01'
collections:
- !env '${COLLECTION}'
coverages:
DM01: RGNirByte
DM02:
~:
product_type_name: !env '${COLLECTION}_Product_DM02'
collections:
- !env '${COLLECTION}'
coverages:
DM02: RGBNir
EQ02_3:
~:
product_type_name: !env '${COLLECTION}_Product_EQ02_3'
collections:
- !env '${COLLECTION}'
coverages:
EQ02_3: RGB
EQ02_4:
~:
product_type_name: !env '${COLLECTION}_Product_EQ02_4'
collections:
- !env '${COLLECTION}'
coverages:
EQ02_4: RGBNir
EW01:
~:
product_type_name: !env '${COLLECTION}_Product_EW01'
collections:
- !env '${COLLECTION}'
coverages:
EW01: grayscale
EW02_3:
~:
product_type_name: !env '${COLLECTION}_Product_EW02_3'
collections:
- !env '${COLLECTION}'
coverages:
EW02_3: RGB
EW02_4:
~:
product_type_name: !env '${COLLECTION}_Product_EW02_4'
collections:
- !env '${COLLECTION}'
coverages:
EW02_4: RGBNir
EW02_8:
~:
product_type_name: !env '${COLLECTION}_Product_EW02_8'
collections:
- !env '${COLLECTION}'
coverages:
EW02_8: CBGYRReNirNir2
EW03_3:
~:
product_type_name: !env '${COLLECTION}_Product_EW03_3'
collections:
- !env '${COLLECTION}'
coverages:
EW03_3: RGB
EW03_4:
~:
product_type_name: !env '${COLLECTION}_Product_EW03_4'
collections:
- !env '${COLLECTION}'
coverages:
EW03_4: RGBNir
EW03_8:
~:
product_type_name: !env '${COLLECTION}_Product_EW03_8'
collections:
- !env '${COLLECTION}'
coverages:
EW03_8: CBGYRReNirNir2
GE01_4:
~:
product_type_name: !env '${COLLECTION}_Product_GE01_4'
collections:
- !env '${COLLECTION}'
coverages:
GE01_4: RGBNir
GE01_3:
~:
product_type_name: !env '${COLLECTION}_Product_GE01_3'
collections:
- !env '${COLLECTION}'
coverages:
GE01_3: RGB
GE01_1:
~:
product_type_name: !env '${COLLECTION}_Product_GE01_1'
collections:
- !env '${COLLECTION}'
coverages:
GE01_1: grayscale
GY01:
~:
product_type_name: !env '${COLLECTION}_Product_GY01'
collections:
- !env '${COLLECTION}'
coverages:
GY01: RGBNir
IK02:
~:
product_type_name: !env '${COLLECTION}_Product_IK02'
collections:
- !env '${COLLECTION}'
coverages:
IK02: RGBNir
KS03:
~:
product_type_name: !env '${COLLECTION}_Product_KS03'
collections:
- !env '${COLLECTION}'
coverages:
KS03: RGBNir
PH1A:
~:
product_type_name: !env '${COLLECTION}_Product_PH1A'
collections:
- !env '${COLLECTION}'
coverages:
PH1A: RGBNir
PH1B:
~:
product_type_name: !env '${COLLECTION}_Product_PH1B'
collections:
- !env '${COLLECTION}'
coverages:
PH1B: RGBNir
RE00:
~:
product_type_name: !env '${COLLECTION}_Product_RE00'
collections:
- !env '${COLLECTION}'
coverages:
RE00: BGRReNir
RS02_2:
~:
product_type_name: !env '${COLLECTION}_Product_RS02_2'
collections:
- !env '${COLLECTION}'
coverages:
RS02_2: sar_hh_gray
RS02_3:
~:
product_type_name: !env '${COLLECTION}_Product_RS02_3'
collections:
- !env '${COLLECTION}'
coverages:
RS02_3: sar_hh_vv_gray
RS02_7:
~:
product_type_name: !env '${COLLECTION}_Product_RS02_7'
collections:
- !env '${COLLECTION}'
coverages:
RS02_7: sar_hh_hv_vh_vv_rgb
SP04:
~:
product_type_name: !env '${COLLECTION}_Product_SP04'
collections:
- !env '${COLLECTION}'
coverages:
SP04: RGBNirByte
SP05:
~:
product_type_name: !env '${COLLECTION}_Product_SP05'
collections:
- !env '${COLLECTION}'
coverages:
SP05: RGNirByte
SP06:
~:
product_type_name: !env '${COLLECTION}_Product_SP06'
collections:
- !env '${COLLECTION}'
coverages:
SP06: RGBNir
SP07:
~:
product_type_name: !env '${COLLECTION}_Product_SP07'
collections:
- !env '${COLLECTION}'
coverages:
SP07: RGBNir
TX01_2:
~:
product_type_name: !env '${COLLECTION}_Product_TX01_2'
collections:
- !env '${COLLECTION}'
coverages:
TX01_2: sar_hh_gray
TX01_3:
~:
product_type_name: !env '${COLLECTION}_Product_TX01_3'
collections:
- !env '${COLLECTION}'
coverages:
TX01_3: sar_hh_vv_gray
TX01_7:
~:
product_type_name: !env '${COLLECTION}_Product_TX01_7'
collections:
- !env '${COLLECTION}'
coverages:
TX01_7: sar_hh_hv_vh_vv_rgb
sources:
- type: swift
name: !env '${UPLOAD_CONTAINER}'
kwargs:
username: !env '${OS_USERNAME}'
password: !env '${OS_PASSWORD}'
tenant_name: !env '${OS_TENANT_NAME}'
tenant_id: !env '${OS_TENANT_ID}'
region_name: !env '${OS_REGION_NAME}'
auth_version: !env '${ST_AUTH_VERSION}'
auth_url: !env '${OS_AUTH_URL}'
user_domain_name: !env '${OS_USER_DOMAIN_NAME}'
container: !env '${UPLOAD_CONTAINER}'
schemes:
- type: gsc
backends:
type: eoxserver
filter:
kwargs:
instance_base_path: /var/www/pvs/dev
instance_name: pvs_instance
mapping:
PL00:
Level_1:
product_type_name: !env '${COLLECTION}_Product_PL00'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_1'
coverages:
PL00: RGBNir
Level_3:
product_type_name: !env '${COLLECTION}_Product_PL00'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_3'
coverages:
PL00: RGBNir
DM02:
Level_1:
product_type_name: !env '${COLLECTION}_Product_DM02'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_1'
coverages:
DM02: RGBNir
Level_3:
product_type_name: !env '${COLLECTION}_Product_DM02'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_3'
coverages:
DM02: RGBNir
KS03:
Level_1:
product_type_name: !env '${COLLECTION}_Product_KS03'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_1'
coverages:
KS03: RGBNir
Level_3:
product_type_name: !env '${COLLECTION}_Product_KS03'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_3'
coverages:
KS03: RGBNir
KS04:
Level_1:
product_type_name: !env '${COLLECTION}_Product_KS04'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_1'
coverages:
KS04: RGBNir
Level_3:
product_type_name: !env '${COLLECTION}_Product_KS04'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_3'
coverages:
KS04: RGBNir
PH1A:
Level_1:
product_type_name: !env '${COLLECTION}_Product_PH1A'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_1'
coverages:
PH1A: RGBNir
Level_3:
product_type_name: !env '${COLLECTION}_Product_PH1A'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_3'
coverages:
PH1A: RGBNir
PH1B:
Level_1:
product_type_name: !env '${COLLECTION}_Product_PH1B'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_1'
coverages:
PH1B: RGBNir
Level_3:
product_type_name: !env '${COLLECTION}_Product_PH1B'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_3'
coverages:
PH1B: RGBNir
SP06:
Level_1:
product_type_name: !env '${COLLECTION}_Product_SP06'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_1'
coverages:
SP06: RGBNir
Level_3:
product_type_name: !env '${COLLECTION}_Product_SP06'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_3'
coverages:
SP06: RGBNir
SP07:
Level_1:
product_type_name: !env '${COLLECTION}_Product_SP07'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_1'
coverages:
SP07: RGBNir
Level_3:
product_type_name: !env '${COLLECTION}_Product_SP07'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_3'
coverages:
SP07: RGBNir
SW00:
Level_1:
product_type_name: !env '${COLLECTION}_Product_SW00'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_1'
coverages:
SW00: RGBNir
Level_3:
product_type_name: !env '${COLLECTION}_Product_SW00'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_3'
coverages:
SW00: RGBNir
TR00:
Level_1:
product_type_name: !env '${COLLECTION}_Product_TR00'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_1'
coverages:
TR00: RGBNir
Level_3:
product_type_name: !env '${COLLECTION}_Product_TR00'
collections:
- !env '${COLLECTION}'
- !env '${COLLECTION}_Level_3'
coverages:
TR00: RGBNir
......@@ -104,7 +104,43 @@ class Sentinel2RegistrationScheme(RegistrationScheme):
class GSCRegistrationScheme(RegistrationScheme):
pass
GSC_SCHEMA = {
'identifier': Parameter('//gml:metaDataProperty/gsc:EarthObservationMetaData/eop:identifier/text()'),
'type': Parameter('//gml:using/eop:EarthObservationEquipment/eop:platform/eop:Platform/eop:shortName/text()'),
'level': Parameter('//gml:metaDataProperty/gsc:EarthObservationMetaData/eop:parentIdentifier/text()'),
'mask': Parameter('//gsc:opt_metadata/gml:metaDataProperty/gsc:EarthObservationMetaData/eop:vendorSpecific/eop:SpecificInformation[eop:localAttribute/text() = "CF_POLY"]/eop:localValue/text()'),
}
def get_context(self, source: Source, path: str) -> Context:
gcs_filenames = source.list_files(path, 'GSC*.xml')
metadata_file = gsc_filenames[0]
tree = read_xml(source, metadata_file)
metadata = parse_metadata_schema(tl_tree, self.GSC_SCHEMA, tree.nsmap)
tiff_files = {
metadata['type']: source.list_files(path, '*.tif') + source.list_files(path, '*.TIF')
}
match = re.match(r'.*(Level_[0-9]+)$', metadata['level'])
if match:
level = match.groups()[0]
else:
level = None
return Context(
identifier=metadata['identifier'],
path=path,
product_type=metadata['type'],
product_level=level,
raster_files=tiff_files,
masks={
'validity': metadata['mask']
},
metadata_files=[metadata_file],
metadata={
}
)
REGISTRATION_SCHEMES = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment