EOX GitLab Instance

Skip to content
Snippets Groups Projects
Commit f7118067 authored by Stephan's avatar Stephan
Browse files

Adding initial configuration for two test collections.

parent b5edee31
Branches
Tags
No related merge requests found
Showing
with 3564 additions and 0 deletions
/data
variables:
DOCKER_TLS_CERTDIR: ""
build-master:
image: docker:latest
stage: build
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- VERSION=`grep 'version="*"' core/Dockerfile | cut -d '"' -f2`
- IMAGE="$CI_REGISTRY_IMAGE/pdas_core"
- docker pull "$IMAGE":latest || true
- docker build --cache-from "$IMAGE":latest -t "$IMAGE":latest -t "$IMAGE":$VERSION core/
- docker push "$IMAGE":$VERSION
- docker push "$IMAGE":latest
- VERSION=`grep 'version="*"' preprocessor/Dockerfile | cut -d '"' -f2`
- IMAGE="$CI_REGISTRY_IMAGE/pdas_preprocessor"
- docker pull "$IMAGE":latest || true
- docker build --cache-from "$IMAGE":latest -t "$IMAGE":latest -t "$IMAGE":$VERSION preprocessor/
- docker push "$IMAGE":$VERSION
- docker push "$IMAGE":latest
- VERSION=`grep 'version="*"' client/Dockerfile | cut -d '"' -f2`
- IMAGE="$CI_REGISTRY_IMAGE/pdas_client"
- docker pull "$IMAGE":latest || true
- docker build --cache-from "$IMAGE":latest -t "$IMAGE":latest -t "$IMAGE":$VERSION client/
- docker push "$IMAGE":$VERSION
- docker push "$IMAGE":latest
- VERSION=`grep 'version="*"' cache/Dockerfile | cut -d '"' -f2`
- IMAGE="$CI_REGISTRY_IMAGE/pdas_cache"
- docker pull "$IMAGE":latest || true
- docker build --cache-from "$IMAGE":latest -t "$IMAGE":latest -t "$IMAGE":$VERSION cache/
- docker push "$IMAGE":$VERSION
- docker push "$IMAGE":latest
only:
- master
build:
image: docker:latest
stage: build
services:
- docker:dind
before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
script:
- IMAGE="$CI_REGISTRY_IMAGE/pdas_core"
- docker pull "$IMAGE":$CI_COMMIT_REF_NAME || true
- docker build --cache-from "$IMAGE":$CI_COMMIT_REF_NAME -t "$IMAGE":$CI_COMMIT_REF_SLUG -t "$IMAGE":$CI_COMMIT_REF_NAME core/
- docker push "$IMAGE:$CI_COMMIT_REF_SLUG"
- docker push "$IMAGE:$CI_COMMIT_REF_NAME"
- IMAGE="$CI_REGISTRY_IMAGE/pdas_preprocessor"
- docker pull "$IMAGE":$CI_COMMIT_REF_NAME || true
- docker build --cache-from "$IMAGE":$CI_COMMIT_REF_NAME -t "$IMAGE":$CI_COMMIT_REF_SLUG -t "$IMAGE":$CI_COMMIT_REF_NAME preprocessor/
- docker push "$IMAGE:$CI_COMMIT_REF_SLUG"
- docker push "$IMAGE:$CI_COMMIT_REF_NAME"
- IMAGE="$CI_REGISTRY_IMAGE/pdas_client"
- docker pull "$IMAGE":$CI_COMMIT_REF_NAME || true
- docker build --cache-from "$IMAGE":$CI_COMMIT_REF_NAME -t "$IMAGE":$CI_COMMIT_REF_SLUG -t "$IMAGE":$CI_COMMIT_REF_NAME client/
- docker push "$IMAGE:$CI_COMMIT_REF_SLUG"
- docker push "$IMAGE:$CI_COMMIT_REF_NAME"
- IMAGE="$CI_REGISTRY_IMAGE/pdas_cache"
- docker pull "$IMAGE":$CI_COMMIT_REF_NAME || true
- docker build --cache-from "$IMAGE":$CI_COMMIT_REF_NAME -t "$IMAGE":$CI_COMMIT_REF_SLUG -t "$IMAGE":$CI_COMMIT_REF_NAME cache/
- docker push "$IMAGE:$CI_COMMIT_REF_SLUG"
- docker push "$IMAGE:$CI_COMMIT_REF_NAME"
except:
- master
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta charset="UTF-8">
<title>PRISM Data Access Service</title>
<link rel="icon" href="//eox.at/wp-content/uploads/2015/06/cropped-eox_eye-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon-precomposed" href="//eox.at/wp-content/uploads/2015/06/cropped-eox_eye-180x180.png" />
</head>
<body>
<header id="header" style="width: 100%; height:70px;">
<h3 style="width:100%;text-align:center;
color: #006699;">PRISM Data Access Service (PDAS) Client powered by
<a href="//eox.at"><img src="//eox.at/wp-content/uploads/2017/09/EOX_Logo.svg" alt="EOX" style="height:25px;margin-left:10px"/></a>
</h3>
</header>
<div id="app" style="width: 100%; top: 60px; bottom: 0; position: absolute; margin: 0; padding:0;"></div>
<script src="prism.js"></script>
<script>
var today = new Date();
today.setUTCHours(24, 0, 0, 0);
var baseUrl = '//127.0.0.1';
var config = {
"settings": {
"rightPanelOpen": true,
"leftPanelOpen": false,
"leftPanelTabIndex": 0,
"tutorial": "once",
"uploadEnabled": false,
"selectFilesDownloadEnabled": false,
"downloadEnabled": true,
"searchEnabled" : true,
"searchDebounceTime": 500,
"language": "en",
"timeDomain": [
"2015-01-01T00:00:00Z",
today.toISOString(),
],
"constrainTimeDomain": true,
"displayTimeDomain": [
"2019-01-01T00:00:00Z",
"2019-12-31T23:59:59Z",
],
"displayInterval": "P1096D",
"selectedTimeDomain": [
"2019-01-01T00:00:00Z",
"2019-12-31T23:59:59Z",
],
"selectableInterval": "P1096D",
"timeSliderControls": true,
"maxTooltips": 1,
"center": [12, 49],
"zoom": 5,
"maxZoom": 17,
"footprintFillColor": "rgba(0, 0, 0, 0.2)",
"footprintStrokeColor": "rgba(0, 0, 0, 1)",
"filterFillColor": "rgba(0, 165, 255, 0)",
"filterStrokeColor": "rgba(0, 165, 255, 1)",
"filterOutsideColor": "rgba(0, 0, 0, 0.5)",
"selectedFootprintFillColor": "rgba(255, 0, 0, 0.2)",
"selectedFootprintStrokeColor": "rgba(255, 0, 0, 1)",
"highlightFillColor": "rgba(246, 182, 0, 0.5)",
"highlightStrokeColor": "rgba(246, 182, 0, 1)",
"highlightStrokeWidth": 3,
"translations": {
"en": {
"Cloud Cover": "Cloud coverage (%)",
"Error: NoApplicableCode": "Search timed out. Please refine the filter criteria.",
}
},
"filterSettings": {
"time": {
"hidden": true,
}
},
"downloadFormats": [
{
"name": "TIFF",
"mimeType": "image/tiff"
},
{
"name": "JPEG 2000",
"mimeType": "image/jp2"
},
{
"name": "HDF",
"mimeType": "application/x-hdf",
},
],
"downloadProjections": [
{
"name": "WGS-84",
"identifier": "http://www.opengis.net/def/crs/EPSG/0/4326"
},
{
"name": "Web Mercator",
"identifier": "http://www.opengis.net/def/crs/EPSG/0/3857"
},
{
"name": "ETRS89 / LAEA Europe",
"identifier": "http://www.opengis.net/def/crs/EPSG/0/3035"
}
],
"downloadInterpolations": [
{
"name": "Bilinear",
"identifier": "http://www.opengis.net/def/interpolation/OGC/1/bilinear"
},
{
"name": "Nearest Neighbour",
"identifier": "http://www.opengis.net/def/interpolation/OGC/1/nearest-neighbour"
},
// {
// "name": "Cubic",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/cubic"
// },
// {
// "name": "Cubic Spline",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/cubic-spline"
// },
{
"name": "Average",
"identifier": "http://www.opengis.net/def/interpolation/OGC/1/average"
},
// {
// "name": "Lanczos",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/lanczos"
// },
// {
// "name": "Mode",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/mode"
// },
]
},
"baseLayers": [
{
"id": "terrain-light",
"displayName": "EOX Terrain-Light",
"display": {
"id": "terrain-light",
"visible": true,
"protocol": "WMTS",
"urls": [
"//d.s2maps-tiles.eu/wmts/",
"//e.s2maps-tiles.eu/wmts/"
],
"matrixSet": "WGS84",
"format": "image/png",
"projection": "EPSG:4326",
"style": "default",
"attribution": "Terrain-Light { Data &copy; <a href=\"//www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors and <a href='javascript:;' onClick='toggle(terrain_attribution)'>others</a>, Rendering &copy; <a href=\"//eox.at\" target=\"_blank\">EOX</a> }"
}
}, {
"id": "terrain",
"displayName": "EOX Terrain",
"display": {
"id": "terrain",
"visible": false,
"protocol": "WMTS",
"urls": [
"//d.s2maps-tiles.eu/wmts/",
"//e.s2maps-tiles.eu/wmts/"
],
"matrixSet": "WGS84",
"format": "image/png",
"projection": "EPSG:4326",
"style": "default",
"attribution": "Terrain { Data &copy; <a href=\"//www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors and <a href='javascript:;' onClick='toggle(terrain_attribution)'>others</a>, Rendering &copy; <a href=\"//eox.at\" target=\"_blank\">EOX</a> }"
}
}, {
"id": "s2cloudless",
"displayName": "EOX Sentinel-2 cloudless",
"display": {
"id": "s2cloudless-2018",
"visible": false,
"protocol": "WMTS",
"urls": [
"//d.s2maps-tiles.eu/wmts/",
"//e.s2maps-tiles.eu/wmts/"
],
"matrixSet": "WGS84",
"format": "image/png",
"projection": "EPSG:4326",
"style": "default",
"attribution": "<a xmlns:dct=\"//purl.org/dc/terms/\" href=\"//s2maps.eu\" property=\"dct:title\">Sentinel-2 cloudless - //s2maps.eu</a> by <a xmlns:cc=\"//creativecommons.org/ns#\" href=\"s://eox.at\" property=\"cc:attributionName\" rel=\"cc:attributionURL\">EOX IT Services GmbH</a> (Contains modified Copernicus Sentinel data 2017 &amp; 2018)"
}
}
],
"layers": [
{
"id": 'Emergency',
"displayName": 'Emergency',
"displayColor": '#eb3700',
"display": {
"id": 'Emergency__TRUE_COLOR',
"visible": true,
"protocol": 'WMS',
"url": baseUrl + ':83/ows',
"format": 'image/png',
"projection": 'EPSG:4326',
"style": '',
"useMilliseconds": false,
"maxZoom": 17,
"options": [{
"name": "Style",
"target": "display.extraParameters.LAYERS",
"values": [{
"label": "Emergency True Color",
"value": "Emergency__TRUE_COLOR",
}, {
"label": "Emergency False Color",
"value": "Emergency__FALSE_COLOR",
}, {
"label": "Emergency NDVI",
"value": "Emergency__NDVI",
}]
}],
},
"search": {
"protocol": "OpenSearch",
"url": baseUrl + ":81/opensearch/collections/Emergency/",
"id": "Emergency",
"histogramBinCount": 28,
"format": "application/atom+xml",
"method": "GET",
"histogramThreshold": 600,
"lightweightBuckets": true,
"searchLimit": 600,
"loadMore": 600,
"pageSize": 200,
"countZeroRecords": true,
"parameters": [
{
"max": 100,
"min": 0,
"range": true,
"type": "eo:cloudCover",
"title": "Cloud Coverage"
},
],
"parametersFilterSettings": {
"collapsed": false,
},
},
"download": {
"protocol": "EO-WCS",
"url": baseUrl + ":81/ows/",
// "method": "GET",
"rewrite": {
// add __coverage to the coverageId
"from": "({{id}})",
"to": "$1__coverage"
}
}
},
],
"overlayLayers": [
{
"id": "overlay_base",
"displayName": "EOX Borders and Labels",
"display": {
"id": "overlay_base",
"visible": false,
"protocol": "WMTS",
"urls": [
"//d.tiles.maps.eox.at/wmts/",
"//e.tiles.maps.eox.at/wmts/"
],
"matrixSet": "WGS84",
"style": "default",
"format": "image/png",
"projection": "EPSG:4326",
"attribution": "Overlay { Data &copy; <a href=\"//www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors, Rendering &copy; <a href=\"//eox.at\" target=\"_blank\">EOX</a> and <a href=\"//github.com/mapserver/basemaps\" target=\"_blank\">MapServer</a> }"
}
},
{
"id": 'Emergency__outlines',
"displayName": 'Emergency Outlines',
"displayColor": '#187465',
"display": {
"id": 'Emergency__outlines',
"visible": false,
"protocol": 'WMS',
"url": baseUrl + ':81/ows',
"format": 'image/png',
"projection": 'EPSG:4326',
"style": 'red',
"useMilliseconds": false,
"maxZoom": 17,
"synchronizeTime": true,
},
}
]
};
var app = new Application({
config: config,
container: document.getElementById('app'),
});
app.start();
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta charset="UTF-8">
<title>PRISM Data Access Service</title>
<link rel="icon" href="//eox.at/wp-content/uploads/2015/06/cropped-eox_eye-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon-precomposed" href="//eox.at/wp-content/uploads/2015/06/cropped-eox_eye-180x180.png" />
</head>
<body>
<header id="header" style="width: 100%; height:70px;">
<h3 style="width:100%;text-align:center;
color: #006699;">PRISM Data Access Service (PDAS) Client powered by
<a href="//eox.at"><img src="//eox.at/wp-content/uploads/2017/09/EOX_Logo.svg" alt="EOX" style="height:25px;margin-left:10px"/></a>
</h3>
</header>
<div id="app" style="width: 100%; top: 60px; bottom: 0; position: absolute; margin: 0; padding:0;"></div>
<script src="prism.js"></script>
<script>
var today = new Date();
today.setUTCHours(24, 0, 0, 0);
var baseUrl = '//emg.pdas.prism.eox.at/';
var config = {
"settings": {
"rightPanelOpen": true,
"leftPanelOpen": false,
"leftPanelTabIndex": 0,
"tutorial": "once",
"uploadEnabled": false,
"selectFilesDownloadEnabled": false,
"downloadEnabled": true,
"searchEnabled" : true,
"searchDebounceTime": 500,
"language": "en",
"timeDomain": [
"2015-01-01T00:00:00Z",
today.toISOString(),
],
"constrainTimeDomain": true,
"displayTimeDomain": [
"2019-01-01T00:00:00Z",
"2019-12-31T23:59:59Z",
],
"displayInterval": "P1096D",
"selectedTimeDomain": [
"2019-01-01T00:00:00Z",
"2019-12-31T23:59:59Z",
],
"selectableInterval": "P1096D",
"timeSliderControls": true,
"maxTooltips": 1,
"center": [12, 49],
"zoom": 5,
"maxZoom": 17,
"footprintFillColor": "rgba(0, 0, 0, 0.2)",
"footprintStrokeColor": "rgba(0, 0, 0, 1)",
"filterFillColor": "rgba(0, 165, 255, 0)",
"filterStrokeColor": "rgba(0, 165, 255, 1)",
"filterOutsideColor": "rgba(0, 0, 0, 0.5)",
"selectedFootprintFillColor": "rgba(255, 0, 0, 0.2)",
"selectedFootprintStrokeColor": "rgba(255, 0, 0, 1)",
"highlightFillColor": "rgba(246, 182, 0, 0.5)",
"highlightStrokeColor": "rgba(246, 182, 0, 1)",
"highlightStrokeWidth": 3,
"translations": {
"en": {
"Cloud Cover": "Cloud coverage (%)",
"Error: NoApplicableCode": "Search timed out. Please refine the filter criteria.",
}
},
"filterSettings": {
"time": {
"hidden": true,
}
},
"downloadFormats": [
{
"name": "TIFF",
"mimeType": "image/tiff"
},
{
"name": "JPEG 2000",
"mimeType": "image/jp2"
},
{
"name": "HDF",
"mimeType": "application/x-hdf",
},
],
"downloadProjections": [
{
"name": "WGS-84",
"identifier": "http://www.opengis.net/def/crs/EPSG/0/4326"
},
{
"name": "Web Mercator",
"identifier": "http://www.opengis.net/def/crs/EPSG/0/3857"
},
{
"name": "ETRS89 / LAEA Europe",
"identifier": "http://www.opengis.net/def/crs/EPSG/0/3035"
}
],
"downloadInterpolations": [
{
"name": "Bilinear",
"identifier": "http://www.opengis.net/def/interpolation/OGC/1/bilinear"
},
{
"name": "Nearest Neighbour",
"identifier": "http://www.opengis.net/def/interpolation/OGC/1/nearest-neighbour"
},
// {
// "name": "Cubic",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/cubic"
// },
// {
// "name": "Cubic Spline",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/cubic-spline"
// },
{
"name": "Average",
"identifier": "http://www.opengis.net/def/interpolation/OGC/1/average"
},
// {
// "name": "Lanczos",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/lanczos"
// },
// {
// "name": "Mode",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/mode"
// },
]
},
"baseLayers": [
{
"id": "terrain-light",
"displayName": "EOX Terrain-Light",
"display": {
"id": "terrain-light",
"visible": true,
"protocol": "WMTS",
"urls": [
"//d.s2maps-tiles.eu/wmts/",
"//e.s2maps-tiles.eu/wmts/"
],
"matrixSet": "WGS84",
"format": "image/png",
"projection": "EPSG:4326",
"style": "default",
"attribution": "Terrain-Light { Data &copy; <a href=\"//www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors and <a href='javascript:;' onClick='toggle(terrain_attribution)'>others</a>, Rendering &copy; <a href=\"//eox.at\" target=\"_blank\">EOX</a> }"
}
}, {
"id": "terrain",
"displayName": "EOX Terrain",
"display": {
"id": "terrain",
"visible": false,
"protocol": "WMTS",
"urls": [
"//d.s2maps-tiles.eu/wmts/",
"//e.s2maps-tiles.eu/wmts/"
],
"matrixSet": "WGS84",
"format": "image/png",
"projection": "EPSG:4326",
"style": "default",
"attribution": "Terrain { Data &copy; <a href=\"//www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors and <a href='javascript:;' onClick='toggle(terrain_attribution)'>others</a>, Rendering &copy; <a href=\"//eox.at\" target=\"_blank\">EOX</a> }"
}
}, {
"id": "s2cloudless",
"displayName": "EOX Sentinel-2 cloudless",
"display": {
"id": "s2cloudless-2018",
"visible": false,
"protocol": "WMTS",
"urls": [
"//d.s2maps-tiles.eu/wmts/",
"//e.s2maps-tiles.eu/wmts/"
],
"matrixSet": "WGS84",
"format": "image/png",
"projection": "EPSG:4326",
"style": "default",
"attribution": "<a xmlns:dct=\"//purl.org/dc/terms/\" href=\"//s2maps.eu\" property=\"dct:title\">Sentinel-2 cloudless - //s2maps.eu</a> by <a xmlns:cc=\"//creativecommons.org/ns#\" href=\"s://eox.at\" property=\"cc:attributionName\" rel=\"cc:attributionURL\">EOX IT Services GmbH</a> (Contains modified Copernicus Sentinel data 2017 &amp; 2018)"
}
}
],
"layers": [
{
"id": 'Emergency',
"displayName": 'Emergency',
"displayColor": '#eb3700',
"display": {
"id": 'Emergency__TRUE_COLOR',
"visible": true,
"protocol": 'WMS',
"url": baseUrl + 'cache/ows',
"format": 'image/png',
"projection": 'EPSG:4326',
"style": '',
"useMilliseconds": false,
"maxZoom": 17,
"options": [{
"name": "Style",
"target": "display.extraParameters.LAYERS",
"values": [{
"label": "Emergency True Color",
"value": "Emergency__TRUE_COLOR",
}, {
"label": "Emergency False Color",
"value": "Emergency__FALSE_COLOR",
}, {
"label": "Emergency NDVI",
"value": "Emergency__NDVI",
}]
}],
},
"search": {
"protocol": "OpenSearch",
"url": baseUrl + "opensearch/collections/Emergency/",
"id": "Emergency",
"histogramBinCount": 28,
"format": "application/atom+xml",
"method": "GET",
"histogramThreshold": 600,
"lightweightBuckets": true,
"searchLimit": 600,
"loadMore": 600,
"pageSize": 200,
"countZeroRecords": true,
"parameters": [
{
"max": 100,
"min": 0,
"range": true,
"type": "eo:cloudCover",
"title": "Cloud Coverage"
},
],
"parametersFilterSettings": {
"collapsed": false,
},
},
"download": {
"protocol": "EO-WCS",
"url": baseUrl + "ows",
// "method": "GET",
"rewrite": {
// add __coverage to the coverageId
"from": "({{id}})",
"to": "$1__coverage"
}
}
},
],
"overlayLayers": [
{
"id": "overlay_base",
"displayName": "EOX Borders and Labels",
"display": {
"id": "overlay_base",
"visible": false,
"protocol": "WMTS",
"urls": [
"//d.tiles.maps.eox.at/wmts/",
"//e.tiles.maps.eox.at/wmts/"
],
"matrixSet": "WGS84",
"style": "default",
"format": "image/png",
"projection": "EPSG:4326",
"attribution": "Overlay { Data &copy; <a href=\"//www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors, Rendering &copy; <a href=\"//eox.at\" target=\"_blank\">EOX</a> and <a href=\"//github.com/mapserver/basemaps\" target=\"_blank\">MapServer</a> }"
}
},
{
"id": 'Emergency__outlines',
"displayName": 'Emergency Outlines',
"displayColor": '#187465',
"display": {
"id": 'Emergency__outlines',
"visible": false,
"protocol": 'WMS',
"url": baseUrl + 'ows',
"format": 'image/png',
"projection": 'EPSG:4326',
"style": 'red',
"useMilliseconds": false,
"maxZoom": 17,
"synchronizeTime": true,
},
}
]
};
var app = new Application({
config: config,
container: document.getElementById('app'),
});
app.start();
</script>
</body>
</html>
<mapcache>
<default_format>mixed</default_format>
<format name="mypng" type="PNG">
<compression>fast</compression>
</format>
<format name="myjpeg" type="JPEG">
<quality>75</quality>
<photometric>ycbcr</photometric>
</format>
<format name="mixed" type="MIXED">
<transparent>mypng</transparent>
<opaque>myjpeg</opaque>
</format>
<service type="wms" enabled="true">
<full_wms>assemble</full_wms>
<resample_mode>bilinear</resample_mode>
<format>mixed</format>
<maxsize>4096</maxsize>
<!-- <forwarding_rule name="wms">
<param name="SERVICE" type="values">WMS</param>
<http>
<url>http://localhost/browse/ows</url>
</http>
</forwarding_rule> -->
</service>
<service type="wmts" enabled="true"/>
<metadata>
<title>Pre-rendered View Service (pdas) developed by EOX</title>
<abstract>Pre-rendered View Service (pdas) developed by EOX</abstract>
<keyword>view service</keyword>
<accessconstraints>UNKNOWN</accessconstraints>
<fees>UNKNOWN</fees>
<contactname>Stephan Meissl</contactname>
<contactphone>Please contact via mail.</contactphone>
<contactfacsimile>None</contactfacsimile>
<contactorganization>EOX IT Services GmbH</contactorganization>
<contactcity>Vienna</contactcity>
<contactstateorprovince>Vienna</contactstateorprovince>
<contactpostcode>1090</contactpostcode>
<contactcountry>Austria</contactcountry>
<contactelectronicmailaddress>office@eox.at</contactelectronicmailaddress>
<contactposition>CTO</contactposition>
<providername>EOX</providername>
<providerurl>https://eox.at</providerurl>
<inspire_profile>true</inspire_profile>
<inspire_metadataurl>TBD</inspire_metadataurl>
<defaultlanguage>eng</defaultlanguage>
<language>eng</language>
</metadata>
<errors>empty_img</errors>
<lock_dir>/tmp</lock_dir>
<threaded_fetching>true</threaded_fetching>
<cache name="emg" type="sqlite3">
<dbfile>/tmp/cache.db</dbfile>
</cache>
<!-- SOURCES Emergency -->
<source type="wms" name="emg_true_color">
<getmap>
<params>
<LAYERS>Emergency__TRUE_COLOR</LAYERS>
<TRANSPARENT>true</TRANSPARENT>
</params>
</getmap>
<http>
<url>http://localhost/ows</url>
<connection_timeout>10</connection_timeout>
<timeout>120</timeout>
</http>
</source>
<source type="wms" name="emg_false_color">
<getmap>
<params>
<LAYERS>Emergency__FALSE_COLOR</LAYERS>
<TRANSPARENT>true</TRANSPARENT>
</params>
</getmap>
<http>
<url>http://localhost/ows?</url>
<connection_timeout>10</connection_timeout>
<timeout>120</timeout>
</http>
</source>
<source type="wms" name="emg_ndvi">
<getmap>
<params>
<LAYERS>Emergency__NDVI</LAYERS>
<STYLES>earth</STYLES>
<TRANSPARENT>true</TRANSPARENT>
</params>
</getmap>
<http>
<url>http://localhost/ows?</url>
<connection_timeout>10</connection_timeout>
<timeout>120</timeout>
</http>
</source>
<!-- TILESETS Emergency -->
<tileset name="Emergency__TRUE_COLOR">
<metadata>
<title>Emergency True Color</title>
<abstract>Emergency True Color</abstract>
</metadata>
<source>emg_true_color</source>
<cache>emg</cache>
<grid max-cached-zoom="15" out-of-zoom-strategy="reassemble">WGS84</grid>
<format>mixed</format>
<metatile>1 1</metatile>
<expires>3600</expires>
<dimensions>
<assembly_type>stack</assembly_type>
<store_assemblies>false</store_assemblies>
<subdimensions_read_only>false</subdimensions_read_only>
<dimension type="sqlite" name="time" default="2017/2019" time="true">
<dbfile>/cache-db/emg_mapcache_cache.sqlite</dbfile>
<list_query>select strftime('%Y-%m-%dT%H:%M:%SZ', MIN(start_time))||'/'||strftime('%Y-%m-%dT%H:%M:%SZ', MAX(end_time)) from time</list_query>
<validate_query>select * from (select strftime('%Y-%m-%dT%H:%M:%SZ',start_time)||'/'||strftime('%Y-%m-%dT%H:%M:%SZ',end_time) as interval from time where (start_time&lt;datetime(:end_timestamp,'unixepoch') and (end_time&gt;datetime(:start_timestamp,'unixepoch')) or (start_time=end_time and start_time&lt;=datetime(:end_timestamp,'unixepoch') and end_time&gt;=datetime(:start_timestamp,'unixepoch'))) and ((maxx&gt;=:minx and minx&lt;=:maxx) or (maxx&gt;180 and (maxx-360.0)&gt;=:minx and (minx-360.0)&lt;=:maxx)) and maxy&gt;=:miny and miny&lt;=:maxy order by end_time desc limit 20) order by interval asc</validate_query>
</dimension>
</dimensions>
</tileset>
<tileset name="Emergency__FALSE_COLOR">
<metadata>
<title>Emergency False Color</title>
<abstract>Emergency False Color</abstract>
</metadata>
<source>emg_false_color</source>
<cache>emg</cache>
<grid max-cached-zoom="15" out-of-zoom-strategy="reassemble">WGS84</grid>
<format>mixed</format>
<metatile>1 1</metatile>
<expires>3600</expires>
<dimensions>
<assembly_type>stack</assembly_type>
<store_assemblies>false</store_assemblies>
<subdimensions_read_only>false</subdimensions_read_only>
<dimension type="sqlite" name="time" default="2017/2019" time="true">
<dbfile>/cache-db/emg_mapcache_cache.sqlite</dbfile>
<list_query>select strftime('%Y-%m-%dT%H:%M:%SZ', MIN(start_time))||'/'||strftime('%Y-%m-%dT%H:%M:%SZ', MAX(end_time)) from time</list_query>
<validate_query>select * from (select strftime('%Y-%m-%dT%H:%M:%SZ',start_time)||'/'||strftime('%Y-%m-%dT%H:%M:%SZ',end_time) as interval from time where (start_time&lt;datetime(:end_timestamp,'unixepoch') and (end_time&gt;datetime(:start_timestamp,'unixepoch')) or (start_time=end_time and start_time&lt;=datetime(:end_timestamp,'unixepoch') and end_time&gt;=datetime(:start_timestamp,'unixepoch'))) and ((maxx&gt;=:minx and minx&lt;=:maxx) or (maxx&gt;180 and (maxx-360.0)&gt;=:minx and (minx-360.0)&lt;=:maxx)) and maxy&gt;=:miny and miny&lt;=:maxy order by end_time desc limit 20) order by interval asc</validate_query>
</dimension>
</dimensions>
</tileset>
<tileset name="Emergency__NDVI">
<metadata>
<title>Emergency NDVI</title>
<abstract>Emergency NDVI</abstract>
</metadata>
<source>emg_ndvi</source>
<cache>emg</cache>
<grid max-cached-zoom="15" out-of-zoom-strategy="reassemble">WGS84</grid>
<format>mixed</format>
<metatile>1 1</metatile>
<expires>3600</expires>
<dimensions>
<assembly_type>stack</assembly_type>
<store_assemblies>false</store_assemblies>
<subdimensions_read_only>false</subdimensions_read_only>
<dimension type="sqlite" name="time" default="2017/2019" time="true">
<dbfile>/cache-db/emg_mapcache_cache.sqlite</dbfile>
<list_query>select strftime('%Y-%m-%dT%H:%M:%SZ', MIN(start_time))||'/'||strftime('%Y-%m-%dT%H:%M:%SZ', MAX(end_time)) from time</list_query>
<validate_query>select * from (select strftime('%Y-%m-%dT%H:%M:%SZ',start_time)||'/'||strftime('%Y-%m-%dT%H:%M:%SZ',end_time) as interval from time where (start_time&lt;datetime(:end_timestamp,'unixepoch') and (end_time&gt;datetime(:start_timestamp,'unixepoch')) or (start_time=end_time and start_time&lt;=datetime(:end_timestamp,'unixepoch') and end_time&gt;=datetime(:start_timestamp,'unixepoch'))) and ((maxx&gt;=:minx and minx&lt;=:maxx) or (maxx&gt;180 and (maxx-360.0)&gt;=:minx and (minx-360.0)&lt;=:maxx)) and maxy&gt;=:miny and miny&lt;=:maxy order by end_time desc limit 20) order by interval asc</validate_query>
</dimension>
</dimensions>
</tileset>
</mapcache>
<mapcache>
<default_format>mixed</default_format>
<format name="mypng" type="PNG">
<compression>fast</compression>
</format>
<format name="myjpeg" type="JPEG">
<quality>75</quality>
<photometric>ycbcr</photometric>
</format>
<format name="mixed" type="MIXED">
<transparent>mypng</transparent>
<opaque>myjpeg</opaque>
</format>
<service type="wms" enabled="true">
<full_wms>assemble</full_wms>
<resample_mode>bilinear</resample_mode>
<format>mixed</format>
<maxsize>4096</maxsize>
<!-- <forwarding_rule name="wms">
<param name="SERVICE" type="values">WMS</param>
<http>
<url>http://localhost/browse/ows</url>
</http>
</forwarding_rule> -->
</service>
<service type="wmts" enabled="true"/>
<metadata>
<title>Pre-rendered View Service (pdas) developed by EOX</title>
<abstract>Pre-rendered View Service (pdas) developed by EOX</abstract>
<url>https://emg.pdas.prism.eox.at/cache/ows</url>
<keyword>view service</keyword>
<accessconstraints>UNKNOWN</accessconstraints>
<fees>UNKNOWN</fees>
<contactname>Stephan Meissl</contactname>
<contactphone>Please contact via mail.</contactphone>
<contactfacsimile>None</contactfacsimile>
<contactorganization>EOX IT Services GmbH</contactorganization>
<contactcity>Vienna</contactcity>
<contactstateorprovince>Vienna</contactstateorprovince>
<contactpostcode>1090</contactpostcode>
<contactcountry>Austria</contactcountry>
<contactelectronicmailaddress>office@eox.at</contactelectronicmailaddress>
<contactposition>CTO</contactposition>
<providername>EOX</providername>
<providerurl>https://eox.at</providerurl>
<inspire_profile>true</inspire_profile>
<inspire_metadataurl>TBD</inspire_metadataurl>
<defaultlanguage>eng</defaultlanguage>
<language>eng</language>
</metadata>
<errors>empty_img</errors>
<lock_dir>/tmp</lock_dir>
<threaded_fetching>true</threaded_fetching>
<cache name="emg" type="rest">
<url>{{OS_STORAGE_URL}}/{{BUCKET_NAME}}/{tileset}/{grid}/{dim}/{z}/{x}/{y}.{ext}</url>
<headers>
<X-Auth-Token>{{OS_AUTH_TOKEN}}</X-Auth-Token>
</headers>
</cache>
<!-- SOURCES Emergency -->
<source type="wms" name="emg_true_color">
<getmap>
<params>
<LAYERS>Emergency__TRUE_COLOR</LAYERS>
<TRANSPARENT>true</TRANSPARENT>
</params>
</getmap>
<http>
<url>http://localhost/ows</url>
<connection_timeout>10</connection_timeout>
<timeout>120</timeout>
</http>
</source>
<source type="wms" name="emg_false_color">
<getmap>
<params>
<LAYERS>Emergency__FALSE_COLOR</LAYERS>
<TRANSPARENT>true</TRANSPARENT>
</params>
</getmap>
<http>
<url>http://localhost/ows?</url>
<connection_timeout>10</connection_timeout>
<timeout>120</timeout>
</http>
</source>
<source type="wms" name="emg_ndvi">
<getmap>
<params>
<LAYERS>Emergency__NDVI</LAYERS>
<STYLES>earth</STYLES>
<TRANSPARENT>true</TRANSPARENT>
</params>
</getmap>
<http>
<url>http://localhost/ows?</url>
<connection_timeout>10</connection_timeout>
<timeout>120</timeout>
</http>
</source>
<!-- TILESETS Emergency -->
<tileset name="Emergency__TRUE_COLOR">
<metadata>
<title>Emergency True Color</title>
<abstract>Emergency True Color</abstract>
</metadata>
<source>emg_true_color</source>
<cache>emg</cache>
<grid max-cached-zoom="15" out-of-zoom-strategy="reassemble">WGS84</grid>
<format>mixed</format>
<metatile>1 1</metatile>
<expires>3600</expires>
<dimensions>
<assembly_type>stack</assembly_type>
<store_assemblies>false</store_assemblies>
<subdimensions_read_only>false</subdimensions_read_only>
<dimension type="sqlite" name="time" default="2017/2019" time="true">
<dbfile>/cache-db/emg_mapcache_cache.sqlite</dbfile>
<list_query>select strftime('%Y-%m-%dT%H:%M:%SZ', MIN(start_time))||'/'||strftime('%Y-%m-%dT%H:%M:%SZ', MAX(end_time)) from time</list_query>
<validate_query>select * from (select strftime('%Y-%m-%dT%H:%M:%SZ',start_time)||'/'||strftime('%Y-%m-%dT%H:%M:%SZ',end_time) as interval from time where (start_time&lt;datetime(:end_timestamp,'unixepoch') and (end_time&gt;datetime(:start_timestamp,'unixepoch')) or (start_time=end_time and start_time&lt;=datetime(:end_timestamp,'unixepoch') and end_time&gt;=datetime(:start_timestamp,'unixepoch'))) and ((maxx&gt;=:minx and minx&lt;=:maxx) or (maxx&gt;180 and (maxx-360.0)&gt;=:minx and (minx-360.0)&lt;=:maxx)) and maxy&gt;=:miny and miny&lt;=:maxy order by end_time desc limit 20) order by interval asc</validate_query>
</dimension>
</dimensions>
</tileset>
<tileset name="Emergency__FALSE_COLOR">
<metadata>
<title>Emergency False Color</title>
<abstract>Emergency False Color</abstract>
</metadata>
<source>emg_false_color</source>
<cache>emg</cache>
<grid max-cached-zoom="15" out-of-zoom-strategy="reassemble">WGS84</grid>
<format>mixed</format>
<metatile>1 1</metatile>
<expires>3600</expires>
<dimensions>
<assembly_type>stack</assembly_type>
<store_assemblies>false</store_assemblies>
<subdimensions_read_only>false</subdimensions_read_only>
<dimension type="sqlite" name="time" default="2017/2019" time="true">
<dbfile>/cache-db/emg_mapcache_cache.sqlite</dbfile>
<list_query>select strftime('%Y-%m-%dT%H:%M:%SZ', MIN(start_time))||'/'||strftime('%Y-%m-%dT%H:%M:%SZ', MAX(end_time)) from time</list_query>
<validate_query>select * from (select strftime('%Y-%m-%dT%H:%M:%SZ',start_time)||'/'||strftime('%Y-%m-%dT%H:%M:%SZ',end_time) as interval from time where (start_time&lt;datetime(:end_timestamp,'unixepoch') and (end_time&gt;datetime(:start_timestamp,'unixepoch')) or (start_time=end_time and start_time&lt;=datetime(:end_timestamp,'unixepoch') and end_time&gt;=datetime(:start_timestamp,'unixepoch'))) and ((maxx&gt;=:minx and minx&lt;=:maxx) or (maxx&gt;180 and (maxx-360.0)&gt;=:minx and (minx-360.0)&lt;=:maxx)) and maxy&gt;=:miny and miny&lt;=:maxy order by end_time desc limit 20) order by interval asc</validate_query>
</dimension>
</dimensions>
</tileset>
<tileset name="Emergency__NDVI">
<metadata>
<title>Emergency NDVI</title>
<abstract>Emergency NDVI</abstract>
</metadata>
<source>emg_ndvi</source>
<cache>emg</cache>
<grid max-cached-zoom="15" out-of-zoom-strategy="reassemble">WGS84</grid>
<format>mixed</format>
<metatile>1 1</metatile>
<expires>3600</expires>
<dimensions>
<assembly_type>stack</assembly_type>
<store_assemblies>false</store_assemblies>
<subdimensions_read_only>false</subdimensions_read_only>
<dimension type="sqlite" name="time" default="2017/2019" time="true">
<dbfile>/cache-db/emg_mapcache_cache.sqlite</dbfile>
<list_query>select strftime('%Y-%m-%dT%H:%M:%SZ', MIN(start_time))||'/'||strftime('%Y-%m-%dT%H:%M:%SZ', MAX(end_time)) from time</list_query>
<validate_query>select * from (select strftime('%Y-%m-%dT%H:%M:%SZ',start_time)||'/'||strftime('%Y-%m-%dT%H:%M:%SZ',end_time) as interval from time where (start_time&lt;datetime(:end_timestamp,'unixepoch') and (end_time&gt;datetime(:start_timestamp,'unixepoch')) or (start_time=end_time and start_time&lt;=datetime(:end_timestamp,'unixepoch') and end_time&gt;=datetime(:start_timestamp,'unixepoch'))) and ((maxx&gt;=:minx and minx&lt;=:maxx) or (maxx&gt;180 and (maxx-360.0)&gt;=:minx and (minx-360.0)&lt;=:maxx)) and maxy&gt;=:miny and miny&lt;=:maxy order by end_time desc limit 20) order by interval asc</validate_query>
</dimension>
</dimensions>
</tileset>
</mapcache>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta charset="UTF-8">
<title>PRISM Data Access Service</title>
<link rel="icon" href="//eox.at/wp-content/uploads/2015/06/cropped-eox_eye-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon-precomposed" href="//eox.at/wp-content/uploads/2015/06/cropped-eox_eye-180x180.png" />
</head>
<body>
<header id="header" style="width: 100%; height:70px;">
<h3 style="width:100%;text-align:center;
color: #006699;">PRISM Data Access Service (PDAS) Client powered by
<a href="//eox.at"><img src="//eox.at/wp-content/uploads/2017/09/EOX_Logo.svg" alt="EOX" style="height:25px;margin-left:10px"/></a>
</h3>
</header>
<div id="app" style="width: 100%; top: 60px; bottom: 0; position: absolute; margin: 0; padding:0;"></div>
<script src="prism.js"></script>
<script>
var baseUrl = '//127.0.0.1';
var config = {
"settings": {
"rightPanelOpen": true,
"leftPanelOpen": false,
"leftPanelTabIndex": 0,
"tutorial": "once",
"uploadEnabled": false,
"selectFilesDownloadEnabled": false,
"downloadEnabled": true,
"searchEnabled" : true,
"searchDebounceTime": 500,
"language": "en",
"timeDomain": [
"2017-01-01T00:00:00Z",
"2019-12-31T23:59:59Z",
],
"constrainTimeDomain": true,
"displayTimeDomain": [
"2017-01-01T00:00:00Z",
"2019-12-31T23:59:59Z",
],
"displayInterval": "P1096D",
"selectedTimeDomain": [
"2018-08-01T00:00:00Z",
"2018-08-31T23:59:59Z",
],
"selectableInterval": "P1096D",
"timeSliderControls": true,
"maxTooltips": 1,
"center": [12, 49],
"zoom": 5,
"maxZoom": 17,
"footprintFillColor": "rgba(0, 0, 0, 0.2)",
"footprintStrokeColor": "rgba(0, 0, 0, 1)",
"filterFillColor": "rgba(0, 165, 255, 0)",
"filterStrokeColor": "rgba(0, 165, 255, 1)",
"filterOutsideColor": "rgba(0, 0, 0, 0.5)",
"selectedFootprintFillColor": "rgba(255, 0, 0, 0.2)",
"selectedFootprintStrokeColor": "rgba(255, 0, 0, 1)",
"highlightFillColor": "rgba(246, 182, 0, 0.5)",
"highlightStrokeColor": "rgba(246, 182, 0, 1)",
"highlightStrokeWidth": 3,
"translations": {
"en": {
"Cloud Cover": "Cloud coverage (%)",
"Error: NoApplicableCode": "Search timed out. Please refine the filter criteria.",
}
},
"filterSettings": {
"time": {
"hidden": true,
}
},
"downloadFormats": [
{
"name": "TIFF",
"mimeType": "image/tiff"
},
{
"name": "JPEG 2000",
"mimeType": "image/jp2"
},
{
"name": "HDF",
"mimeType": "application/x-hdf",
},
],
"downloadProjections": [
{
"name": "WGS-84",
"identifier": "http://www.opengis.net/def/crs/EPSG/0/4326"
},
{
"name": "Web Mercator",
"identifier": "http://www.opengis.net/def/crs/EPSG/0/3857"
},
{
"name": "ETRS89 / LAEA Europe",
"identifier": "http://www.opengis.net/def/crs/EPSG/0/3035"
}
],
"downloadInterpolations": [
{
"name": "Bilinear",
"identifier": "http://www.opengis.net/def/interpolation/OGC/1/bilinear"
},
{
"name": "Nearest Neighbour",
"identifier": "http://www.opengis.net/def/interpolation/OGC/1/nearest-neighbour"
},
// {
// "name": "Cubic",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/cubic"
// },
// {
// "name": "Cubic Spline",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/cubic-spline"
// },
{
"name": "Average",
"identifier": "http://www.opengis.net/def/interpolation/OGC/1/average"
},
// {
// "name": "Lanczos",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/lanczos"
// },
// {
// "name": "Mode",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/mode"
// },
]
},
"baseLayers": [
{
"id": "terrain-light",
"displayName": "EOX Terrain-Light",
"display": {
"id": "terrain-light",
"visible": true,
"protocol": "WMTS",
"urls": [
"//d.s2maps-tiles.eu/wmts/",
"//e.s2maps-tiles.eu/wmts/"
],
"matrixSet": "WGS84",
"format": "image/png",
"projection": "EPSG:4326",
"style": "default",
"attribution": "Terrain-Light { Data &copy; <a href=\"//www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors and <a href='javascript:;' onClick='toggle(terrain_attribution)'>others</a>, Rendering &copy; <a href=\"//eox.at\" target=\"_blank\">EOX</a> }"
}
}, {
"id": "terrain",
"displayName": "EOX Terrain",
"display": {
"id": "terrain",
"visible": false,
"protocol": "WMTS",
"urls": [
"//d.s2maps-tiles.eu/wmts/",
"//e.s2maps-tiles.eu/wmts/"
],
"matrixSet": "WGS84",
"format": "image/png",
"projection": "EPSG:4326",
"style": "default",
"attribution": "Terrain { Data &copy; <a href=\"//www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors and <a href='javascript:;' onClick='toggle(terrain_attribution)'>others</a>, Rendering &copy; <a href=\"//eox.at\" target=\"_blank\">EOX</a> }"
}
}, {
"id": "s2cloudless",
"displayName": "EOX Sentinel-2 cloudless",
"display": {
"id": "s2cloudless-2018",
"visible": false,
"protocol": "WMTS",
"urls": [
"//d.s2maps-tiles.eu/wmts/",
"//e.s2maps-tiles.eu/wmts/"
],
"matrixSet": "WGS84",
"format": "image/png",
"projection": "EPSG:4326",
"style": "default",
"attribution": "<a xmlns:dct=\"//purl.org/dc/terms/\" href=\"//s2maps.eu\" property=\"dct:title\">Sentinel-2 cloudless - //s2maps.eu</a> by <a xmlns:cc=\"//creativecommons.org/ns#\" href=\"s://eox.at\" property=\"cc:attributionName\" rel=\"cc:attributionURL\">EOX IT Services GmbH</a> (Contains modified Copernicus Sentinel data 2017 &amp; 2018)"
}
}
],
"layers": [
{
"id": 'VHR_IMAGE_2018_Level_1',
"displayName": 'VHR Image 2018 Level 1',
"displayColor": '#eb3700',
"display": {
"id": 'VHR_IMAGE_2018_Level_1__TRUE_COLOR',
"visible": false,
"protocol": 'WMS',
"url": baseUrl + ':83/ows',
"format": 'image/png',
"projection": 'EPSG:4326',
"style": '',
"useMilliseconds": false,
"maxZoom": 17,
"options": [{
"name": "Style",
"target": "display.extraParameters.LAYERS",
"values": [{
"label": "VHR Image 2018 True Color",
"value": "VHR_IMAGE_2018_Level_1__TRUE_COLOR",
}, {
"label": "VHR Image 2018 True Color with masked validity",
"value": "VHR_IMAGE_2018_Level_1__masked_validity",
}, {
"label": "VHR Image 2018 False Color",
"value": "VHR_IMAGE_2018_Level_1__FALSE_COLOR",
}, {
"label": "VHR Image 2018 NDVI",
"value": "VHR_IMAGE_2018_Level_1__NDVI",
}]
}],
},
"search": {
"protocol": "OpenSearch",
"url": baseUrl + ":81/opensearch/collections/VHR_IMAGE_2018_Level_1/",
"id": "VHR_IMAGE_2018_Level_1",
"histogramBinCount": 28,
"format": "application/atom+xml",
"method": "GET",
"histogramThreshold": 600,
"lightweightBuckets": true,
"searchLimit": 600,
"loadMore": 600,
"pageSize": 200,
"countZeroRecords": true,
"parameters": [
{
"max": 100,
"min": 0,
"range": true,
"type": "eo:cloudCover",
"title": "Cloud Coverage"
},
],
"parametersFilterSettings": {
"collapsed": false,
},
},
"download": {
"protocol": "EO-WCS",
"url": baseUrl + ":81/ows/",
// "method": "GET",
"rewrite": {
// add __coverage to the coverageId
"from": "({{id}})",
"to": "$1__coverage"
}
}
},
{
"id": 'VHR_IMAGE_2018_Level_3',
"displayName": 'VHR Image 2018 Level 3',
"displayColor": '#37eb00',
"display": {
"id": 'VHR_IMAGE_2018_Level_3__TRUE_COLOR',
"visible": true,
"protocol": 'WMS',
"url": baseUrl + ':83/ows',
"format": 'image/png',
"projection": 'EPSG:4326',
"style": '',
"useMilliseconds": false,
"maxZoom": 17,
"options": [{
"name": "Style",
"target": "display.extraParameters.LAYERS",
"values": [{
"label": "VHR Image 2018 True Color",
"value": "VHR_IMAGE_2018_Level_3__TRUE_COLOR",
}, {
"label": "VHR Image 2018 True Color with masked validity",
"value": "VHR_IMAGE_2018_Level_3__masked_validity",
}, {
"label": "VHR Image 2018 False Color",
"value": "VHR_IMAGE_2018_Level_3__FALSE_COLOR",
}, {
"label": "VHR Image 2018 NDVI",
"value": "VHR_IMAGE_2018_Level_3__NDVI",
}]
}],
},
"search": {
"protocol": "OpenSearch",
"url": baseUrl + ":81/opensearch/collections/VHR_IMAGE_2018_Level_3/",
"id": "VHR_IMAGE_2018_Level_3",
"histogramBinCount": 28,
"format": "application/atom+xml",
"method": "GET",
"histogramThreshold": 600,
"lightweightBuckets": true,
"searchLimit": 600,
"loadMore": 600,
"pageSize": 200,
"countZeroRecords": true,
"parameters": [
{
"max": 100,
"min": 0,
"range": true,
"type": "eo:cloudCover",
"title": "Cloud Coverage"
},
],
"parametersFilterSettings": {
"collapsed": false,
},
},
"download": {
"protocol": "EO-WCS",
"url": baseUrl + ":81/ows/",
// "method": "GET",
"rewrite": {
// add __coverage to the coverageId
"from": "({{id}})",
"to": "$1__coverage"
}
}
},
],
"overlayLayers": [
{
"id": "overlay_base",
"displayName": "EOX Borders and Labels",
"display": {
"id": "overlay_base",
"visible": false,
"protocol": "WMTS",
"urls": [
"//d.tiles.maps.eox.at/wmts/",
"//e.tiles.maps.eox.at/wmts/"
],
"matrixSet": "WGS84",
"style": "default",
"format": "image/png",
"projection": "EPSG:4326",
"attribution": "Overlay { Data &copy; <a href=\"//www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors, Rendering &copy; <a href=\"//eox.at\" target=\"_blank\">EOX</a> and <a href=\"//github.com/mapserver/basemaps\" target=\"_blank\">MapServer</a> }"
}
},
{
"id": 'VHR_IMAGE_2018_Level_3__outlines',
"displayName": 'VHR Image 2018 Level 3 Outlines',
"displayColor": '#187465',
"display": {
"id": 'VHR_IMAGE_2018_Level_3__outlines',
"visible": false,
"protocol": 'WMS',
"url": baseUrl + ':81/ows',
"format": 'image/png',
"projection": 'EPSG:4326',
"style": 'red',
"useMilliseconds": false,
"maxZoom": 17,
"synchronizeTime": true,
},
},
{
"id": 'VHR_IMAGE_2018_Level_3__masked_validity__Full',
"displayName": 'VHR Image 2018 Level 3 True Color with masked validity Full Coverage',
"display": {
"id": 'VHR_IMAGE_2018_Level_3__masked_validity__Full',
"visible": false,
"protocol": 'WMS',
"url": baseUrl + ':83/ows',
"format": 'image/png',
"projection": 'EPSG:4326',
"maxZoom": 17,
"synchronizeTime": false,
},
},
{
"id": 'VHR_IMAGE_2018_Level_3__Full',
"displayName": 'VHR Image 2018 Level 3 True Color Full Coverage',
"display": {
"id": 'VHR_IMAGE_2018_Level_3__Full',
"visible": false,
"protocol": 'WMS',
"url": baseUrl + ':83/ows',
"format": 'image/png',
"projection": 'EPSG:4326',
"maxZoom": 17,
"synchronizeTime": false,
},
}
]
};
var app = new Application({
config: config,
container: document.getElementById('app'),
});
app.start();
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta charset="UTF-8">
<title>PRISM Data Access Service</title>
<link rel="icon" href="//eox.at/wp-content/uploads/2015/06/cropped-eox_eye-192x192.png" sizes="192x192" />
<link rel="apple-touch-icon-precomposed" href="//eox.at/wp-content/uploads/2015/06/cropped-eox_eye-180x180.png" />
</head>
<body>
<header id="header" style="width: 100%; height:70px;">
<h3 style="width:100%;text-align:center;
color: #006699;">PRISM Data Access Service (PDAS) Client powered by
<a href="//eox.at"><img src="//eox.at/wp-content/uploads/2017/09/EOX_Logo.svg" alt="EOX" style="height:25px;margin-left:10px"/></a>
</h3>
</header>
<div id="app" style="width: 100%; top: 60px; bottom: 0; position: absolute; margin: 0; padding:0;"></div>
<script src="prism.js"></script>
<script>
var baseUrl = '//vhr18.pdas.prism.eox.at/';
var config = {
"settings": {
"rightPanelOpen": true,
"leftPanelOpen": false,
"leftPanelTabIndex": 0,
"tutorial": "once",
"uploadEnabled": false,
"selectFilesDownloadEnabled": false,
"downloadEnabled": true,
"searchEnabled" : true,
"searchDebounceTime": 500,
"language": "en",
"timeDomain": [
"2017-01-01T00:00:00Z",
"2019-12-31T23:59:59Z",
],
"constrainTimeDomain": true,
"displayTimeDomain": [
"2017-01-01T00:00:00Z",
"2019-12-31T23:59:59Z",
],
"displayInterval": "P1096D",
"selectedTimeDomain": [
"2018-08-01T00:00:00Z",
"2018-08-31T23:59:59Z",
],
"selectableInterval": "P1096D",
"timeSliderControls": true,
"maxTooltips": 1,
"center": [12, 49],
"zoom": 5,
"maxZoom": 17,
"footprintFillColor": "rgba(0, 0, 0, 0.2)",
"footprintStrokeColor": "rgba(0, 0, 0, 1)",
"filterFillColor": "rgba(0, 165, 255, 0)",
"filterStrokeColor": "rgba(0, 165, 255, 1)",
"filterOutsideColor": "rgba(0, 0, 0, 0.5)",
"selectedFootprintFillColor": "rgba(255, 0, 0, 0.2)",
"selectedFootprintStrokeColor": "rgba(255, 0, 0, 1)",
"highlightFillColor": "rgba(246, 182, 0, 0.5)",
"highlightStrokeColor": "rgba(246, 182, 0, 1)",
"highlightStrokeWidth": 3,
"translations": {
"en": {
"Cloud Cover": "Cloud coverage (%)",
"Error: NoApplicableCode": "Search timed out. Please refine the filter criteria.",
}
},
"filterSettings": {
"time": {
"hidden": true,
}
},
"downloadFormats": [
{
"name": "TIFF",
"mimeType": "image/tiff"
},
{
"name": "JPEG 2000",
"mimeType": "image/jp2"
},
{
"name": "HDF",
"mimeType": "application/x-hdf",
},
],
"downloadProjections": [
{
"name": "WGS-84",
"identifier": "http://www.opengis.net/def/crs/EPSG/0/4326"
},
{
"name": "Web Mercator",
"identifier": "http://www.opengis.net/def/crs/EPSG/0/3857"
},
{
"name": "ETRS89 / LAEA Europe",
"identifier": "http://www.opengis.net/def/crs/EPSG/0/3035"
}
],
"downloadInterpolations": [
{
"name": "Bilinear",
"identifier": "http://www.opengis.net/def/interpolation/OGC/1/bilinear"
},
{
"name": "Nearest Neighbour",
"identifier": "http://www.opengis.net/def/interpolation/OGC/1/nearest-neighbour"
},
// {
// "name": "Cubic",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/cubic"
// },
// {
// "name": "Cubic Spline",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/cubic-spline"
// },
{
"name": "Average",
"identifier": "http://www.opengis.net/def/interpolation/OGC/1/average"
},
// {
// "name": "Lanczos",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/lanczos"
// },
// {
// "name": "Mode",
// "identifier": "http://www.opengis.net/def/interpolation/OGC/1/mode"
// },
]
},
"baseLayers": [
{
"id": "terrain-light",
"displayName": "EOX Terrain-Light",
"display": {
"id": "terrain-light",
"visible": true,
"protocol": "WMTS",
"urls": [
"//d.s2maps-tiles.eu/wmts/",
"//e.s2maps-tiles.eu/wmts/"
],
"matrixSet": "WGS84",
"format": "image/png",
"projection": "EPSG:4326",
"style": "default",
"attribution": "Terrain-Light { Data &copy; <a href=\"//www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors and <a href='javascript:;' onClick='toggle(terrain_attribution)'>others</a>, Rendering &copy; <a href=\"//eox.at\" target=\"_blank\">EOX</a> }"
}
}, {
"id": "terrain",
"displayName": "EOX Terrain",
"display": {
"id": "terrain",
"visible": false,
"protocol": "WMTS",
"urls": [
"//d.s2maps-tiles.eu/wmts/",
"//e.s2maps-tiles.eu/wmts/"
],
"matrixSet": "WGS84",
"format": "image/png",
"projection": "EPSG:4326",
"style": "default",
"attribution": "Terrain { Data &copy; <a href=\"//www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors and <a href='javascript:;' onClick='toggle(terrain_attribution)'>others</a>, Rendering &copy; <a href=\"//eox.at\" target=\"_blank\">EOX</a> }"
}
}, {
"id": "s2cloudless",
"displayName": "EOX Sentinel-2 cloudless",
"display": {
"id": "s2cloudless-2018",
"visible": false,
"protocol": "WMTS",
"urls": [
"//d.s2maps-tiles.eu/wmts/",
"//e.s2maps-tiles.eu/wmts/"
],
"matrixSet": "WGS84",
"format": "image/png",
"projection": "EPSG:4326",
"style": "default",
"attribution": "<a xmlns:dct=\"//purl.org/dc/terms/\" href=\"//s2maps.eu\" property=\"dct:title\">Sentinel-2 cloudless - //s2maps.eu</a> by <a xmlns:cc=\"//creativecommons.org/ns#\" href=\"s://eox.at\" property=\"cc:attributionName\" rel=\"cc:attributionURL\">EOX IT Services GmbH</a> (Contains modified Copernicus Sentinel data 2017 &amp; 2018)"
}
}
],
"layers": [
{
"id": 'VHR_IMAGE_2018_Level_1',
"displayName": 'VHR Image 2018 Level 1',
"displayColor": '#eb3700',
"display": {
"id": 'VHR_IMAGE_2018_Level_1__TRUE_COLOR',
"visible": false,
"protocol": 'WMS',
"url": baseUrl + 'cache/ows',
"format": 'image/png',
"projection": 'EPSG:4326',
"style": '',
"useMilliseconds": false,
"maxZoom": 17,
"options": [{
"name": "Style",
"target": "display.extraParameters.LAYERS",
"values": [{
"label": "VHR Image 2018 True Color",
"value": "VHR_IMAGE_2018_Level_1__TRUE_COLOR",
}, {
"label": "VHR Image 2018 True Color with masked validity",
"value": "VHR_IMAGE_2018_Level_1__masked_validity",
}, {
"label": "VHR Image 2018 False Color",
"value": "VHR_IMAGE_2018_Level_1__FALSE_COLOR",
}, {
"label": "VHR Image 2018 NDVI",
"value": "VHR_IMAGE_2018_Level_1__NDVI",
}]
}],
},
"search": {
"protocol": "OpenSearch",
"url": baseUrl + "opensearch/collections/VHR_IMAGE_2018_Level_1/",
"id": "VHR_IMAGE_2018_Level_1",
"histogramBinCount": 28,
"format": "application/atom+xml",
"method": "GET",
"histogramThreshold": 600,
"lightweightBuckets": true,
"searchLimit": 600,
"loadMore": 600,
"pageSize": 200,
"countZeroRecords": true,
"parameters": [
{
"max": 100,
"min": 0,
"range": true,
"type": "eo:cloudCover",
"title": "Cloud Coverage"
},
],
"parametersFilterSettings": {
"collapsed": false,
},
},
"download": {
"protocol": "EO-WCS",
"url": baseUrl + "ows",
// "method": "GET",
"rewrite": {
// add __coverage to the coverageId
"from": "({{id}})",
"to": "$1__coverage"
}
}
},
{
"id": 'VHR_IMAGE_2018_Level_3',
"displayName": 'VHR Image 2018 Level 3',
"displayColor": '#37eb00',
"display": {
"id": 'VHR_IMAGE_2018_Level_3__TRUE_COLOR',
"visible": true,
"protocol": 'WMS',
"url": baseUrl + 'cache/ows',
"format": 'image/png',
"projection": 'EPSG:4326',
"style": '',
"useMilliseconds": false,
"maxZoom": 17,
"options": [{
"name": "Style",
"target": "display.extraParameters.LAYERS",
"values": [{
"label": "VHR Image 2018 True Color",
"value": "VHR_IMAGE_2018_Level_3__TRUE_COLOR",
}, {
"label": "VHR Image 2018 True Color with masked validity",
"value": "VHR_IMAGE_2018_Level_3__masked_validity",
}, {
"label": "VHR Image 2018 False Color",
"value": "VHR_IMAGE_2018_Level_3__FALSE_COLOR",
}, {
"label": "VHR Image 2018 NDVI",
"value": "VHR_IMAGE_2018_Level_3__NDVI",
}]
}],
},
"search": {
"protocol": "OpenSearch",
"url": baseUrl + "opensearch/collections/VHR_IMAGE_2018_Level_3/",
"id": "VHR_IMAGE_2018_Level_3",
"histogramBinCount": 28,
"format": "application/atom+xml",
"method": "GET",
"histogramThreshold": 600,
"lightweightBuckets": true,
"searchLimit": 600,
"loadMore": 600,
"pageSize": 200,
"countZeroRecords": true,
"parameters": [
{
"max": 100,
"min": 0,
"range": true,
"type": "eo:cloudCover",
"title": "Cloud Coverage"
},
],
"parametersFilterSettings": {
"collapsed": false,
},
},
"download": {
"protocol": "EO-WCS",
"url": baseUrl + "ows",
// "method": "GET",
"rewrite": {
// add __coverage to the coverageId
"from": "({{id}})",
"to": "$1__coverage"
}
}
},
],
"overlayLayers": [
{
"id": "overlay_base",
"displayName": "EOX Borders and Labels",
"display": {
"id": "overlay_base",
"visible": false,
"protocol": "WMTS",
"urls": [
"//d.tiles.maps.eox.at/wmts/",
"//e.tiles.maps.eox.at/wmts/"
],
"matrixSet": "WGS84",
"style": "default",
"format": "image/png",
"projection": "EPSG:4326",
"attribution": "Overlay { Data &copy; <a href=\"//www.openstreetmap.org/copyright\" target=\"_blank\">OpenStreetMap</a> contributors, Rendering &copy; <a href=\"//eox.at\" target=\"_blank\">EOX</a> and <a href=\"//github.com/mapserver/basemaps\" target=\"_blank\">MapServer</a> }"
}
},
{
"id": 'VHR_IMAGE_2018_Level_3__outlines',
"displayName": 'VHR Image 2018 Level 3 Outlines',
"displayColor": '#187465',
"display": {
"id": 'VHR_IMAGE_2018_Level_3__outlines',
"visible": false,
"protocol": 'WMS',
"url": baseUrl + 'ows',
"format": 'image/png',
"projection": 'EPSG:4326',
"style": 'red',
"useMilliseconds": false,
"maxZoom": 17,
"synchronizeTime": true,
},
},
{
"id": 'VHR_IMAGE_2018_Level_3__masked_validity__Full',
"displayName": 'VHR Image 2018 Level 3 True Color with masked validity Full Coverage',
"display": {
"id": 'VHR_IMAGE_2018_Level_3__masked_validity__Full',
"visible": false,
"protocol": 'WMS',
"url": baseUrl + 'cache/ows',
"format": 'image/png',
"projection": 'EPSG:4326',
"maxZoom": 17,
"synchronizeTime": false,
},
},
{
"id": 'VHR_IMAGE_2018_Level_3__Full',
"displayName": 'VHR Image 2018 Level 3 True Color Full Coverage',
"display": {
"id": 'VHR_IMAGE_2018_Level_3__Full',
"visible": false,
"protocol": 'WMS',
"url": baseUrl + 'cache/ows',
"format": 'image/png',
"projection": 'EPSG:4326',
"maxZoom": 17,
"synchronizeTime": false,
},
}
]
};
var app = new Application({
config: config,
container: document.getElementById('app'),
});
app.start();
</script>
</body>
</html>
This diff is collapsed.
This diff is collapsed.
version: "3.6"
services:
reverse-proxy:
image: traefik:2.1
ports:
- target: 80
published: 80
protocol: tcp
mode: host
- target: 443
published: 443
protocol: tcp
mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- traefik-data:/etc/traefik/acme
- ./traefik.yml:/etc/traefik/traefik.yml
- ./traefik-dynamic.yml:/etc/traefik/traefik-dynamic.yml
environment:
HTTP_PROXY: "http://172.30.252.68:3128"
HTTPS_PROXY: "http://172.30.252.68:3128"
NO_PROXY: "172.0.0.0/8,192.168.0.0/16,10.0.0.0/8"
deploy:
placement:
constraints: [node.role == manager]
networks:
- vhr18-extnet
- emg-extnet
volumes:
traefik-data:
networks:
vhr18-extnet:
name: vhr18-extnet
emg-extnet:
name: emg-extnet
version: "3.6"
services:
client:
ports:
- "80:80"
configs:
- source: client-dev
target: /usr/share/nginx/html/index.html
renderer:
ports:
- "81:80"
- "82:8080"
volumes:
- type: bind
source: ./data/
target: /data/
registrar:
volumes:
- type: bind
source: ./data/
target: /data/
- type: bind
source: ./core/
target: /core/
cache:
ports:
- "83:80"
volumes:
- type: bind
source: ./data/
target: /data/
configs:
- source: mapcache-dev
target: /mapcache-template.xml
preprocessor:
volumes:
- type: tmpfs
target: /tmp
- type: bind
source: ./preprocessor/
target: /preprocessor/
version: "3.6"
services:
database:
volumes:
- type: tmpfs
target: /dev/shm
tmpfs:
size: 536870912
renderer:
environment:
INSTALL_DIR: "/var/www/pdas/ops/"
deploy:
labels:
# router for basic auth based access (https)
- "traefik.http.routers.emg-renderer.rule=Host(`emg.pdas.prism.eox.at`, `a.emg.pdas.prism.eox.at`, `b.emg.pdas.prism.eox.at`, `c.emg.pdas.prism.eox.at`, `d.emg.pdas.prism.eox.at`, `e.emg.pdas.prism.eox.at`, `f.emg.pdas.prism.eox.at`, `g.emg.pdas.prism.eox.at`, `h.emg.pdas.prism.eox.at`) && PathPrefix(`/ows`, `/opensearch`, `/admin`)"
- "traefik.http.routers.emg-renderer.middlewares=auth@file,compress@file"
- "traefik.http.routers.emg-renderer.tls=true"
- "traefik.http.routers.emg-renderer.tls.certresolver=default"
- "traefik.http.routers.emg-renderer.entrypoints=https"
# router for basic auth based access (http)
- "traefik.http.routers.emg-renderer-redirect.rule=Host(`emg.pdas.prism.eox.at`, `a.emg.pdas.prism.eox.at`, `b.emg.pdas.prism.eox.at`, `c.emg.pdas.prism.eox.at`, `d.emg.pdas.prism.eox.at`, `e.emg.pdas.prism.eox.at`, `f.emg.pdas.prism.eox.at`, `g.emg.pdas.prism.eox.at`, `h.emg.pdas.prism.eox.at`) && PathPrefix(`/ows`, `/opensearch`, `/admin`)"
- "traefik.http.routers.emg-renderer-redirect.middlewares=redirect@file"
- "traefik.http.routers.emg-renderer-redirect.entrypoints=http"
# router for referrer based access (https)
- "traefik.http.routers.emg-renderer_referer.rule=Host(`emg.pdas.prism.eox.at`, `a.emg.pdas.prism.eox.at`, `b.emg.pdas.prism.eox.at`, `c.emg.pdas.prism.eox.at`, `d.emg.pdas.prism.eox.at`, `e.emg.pdas.prism.eox.at`, `f.emg.pdas.prism.eox.at`, `g.emg.pdas.prism.eox.at`, `h.emg.pdas.prism.eox.at`) && PathPrefix(`/ows`, `/opensearch`, `/admin`) && HeadersRegexp(`Referer`, `(https?://)?(panda.copernicus.eu|panda.cdsv3.eu|panda-demo.ondaprism.eu|emg.pdas.prism.eox.at)/?`)"
- "traefik.http.routers.emg-renderer_referer.middlewares=compress@file"
- "traefik.http.routers.emg-renderer_referer.tls=true"
- "traefik.http.routers.emg-renderer_referer.tls.certresolver=default"
- "traefik.http.routers.emg-renderer_referer.entrypoints=https"
# router for referrer based access (http)
- "traefik.http.routers.emg-renderer_referer-redirect.rule=Host(`emg.pdas.prism.eox.at`, `a.emg.pdas.prism.eox.at`, `b.emg.pdas.prism.eox.at`, `c.emg.pdas.prism.eox.at`, `d.emg.pdas.prism.eox.at`, `e.emg.pdas.prism.eox.at`, `f.emg.pdas.prism.eox.at`, `g.emg.pdas.prism.eox.at`, `h.emg.pdas.prism.eox.at`) && PathPrefix(`/ows`, `/opensearch`, `/admin`) && HeadersRegexp(`Referer`, `(https?://)?(panda.copernicus.eu|panda.cdsv3.eu|panda-demo.ondaprism.eu|emg.pdas.prism.eox.at)/?`)"
- "traefik.http.routers.emg-renderer_referer-redirect.middlewares=redirect@file"
- "traefik.http.routers.emg-renderer_referer-redirect.entrypoints=http"
# general
- "traefik.http.services.emg-renderer.loadbalancer.sticky=false"
- "traefik.http.services.emg-renderer.loadbalancer.server.port=80"
- "traefik.docker.network=pdas_extnet"
- "traefik.docker.lbswarm=true"
- "traefik.enable=true"
resources:
limits:
memory: 12G #TODO 4G ended up with many processes in D state, supposedly because of swapping
networks:
- extnet
cache:
configs:
- source: mapcache-ops
target: /mapcache-template.xml
deploy:
labels:
- "traefik.http.middlewares.cache-stripprefix.stripprefix.prefixes=/cache"
# router for basic auth based access (https)
- "traefik.http.routers.emg-cache.rule=Host(`emg.pdas.prism.eox.at`, `a.emg.pdas.prism.eox.at`, `b.emg.pdas.prism.eox.at`, `c.emg.pdas.prism.eox.at`, `d.emg.pdas.prism.eox.at`, `e.emg.pdas.prism.eox.at`, `f.emg.pdas.prism.eox.at`, `g.emg.pdas.prism.eox.at`, `h.emg.pdas.prism.eox.at`) && PathPrefix(`/cache`)"
- "traefik.http.routers.emg-cache.middlewares=auth@file,cache-stripprefix,compress@file"
- "traefik.http.routers.emg-cache.tls=true"
- "traefik.http.routers.emg-cache.tls.certresolver=default"
- "traefik.http.routers.emg-cache.entrypoints=https"
# router for basic auth based access (http)
- "traefik.http.routers.emg-cache-redirect.rule=Host(`emg.pdas.prism.eox.at`, `a.emg.pdas.prism.eox.at`, `b.emg.pdas.prism.eox.at`, `c.emg.pdas.prism.eox.at`, `d.emg.pdas.prism.eox.at`, `e.emg.pdas.prism.eox.at`, `f.emg.pdas.prism.eox.at`, `g.emg.pdas.prism.eox.at`, `h.emg.pdas.prism.eox.at`) && PathPrefix(`/cache`)"
- "traefik.http.routers.emg-cache-redirect.middlewares=redirect@file"
- "traefik.http.routers.emg-cache-redirect.entrypoints=http"
# router for referrer based access (https)
- "traefik.http.routers.emg-cache_referer.rule=Host(`emg.pdas.prism.eox.at`, `a.emg.pdas.prism.eox.at`, `b.emg.pdas.prism.eox.at`, `c.emg.pdas.prism.eox.at`, `d.emg.pdas.prism.eox.at`, `e.emg.pdas.prism.eox.at`, `f.emg.pdas.prism.eox.at`, `g.emg.pdas.prism.eox.at`, `h.emg.pdas.prism.eox.at`) && PathPrefix(`/cache`) && HeadersRegexp(`Referer`, `(https?://)?(panda.copernicus.eu|panda.cdsv3.eu|panda-demo.ondaprism.eu|emg.pdas.prism.eox.at)/?`)"
- "traefik.http.routers.emg-cache_referer.middlewares=cache-stripprefix,compress@file"
- "traefik.http.routers.emg-cache_referer.tls=true"
- "traefik.http.routers.emg-cache_referer.tls.certresolver=default"
- "traefik.http.routers.emg-cache_referer.entrypoints=https"
# router for referrer based access (http)
- "traefik.http.routers.emg-cache_referer-redirect.rule=Host(`emg.pdas.prism.eox.at`, `a.emg.pdas.prism.eox.at`, `b.emg.pdas.prism.eox.at`, `c.emg.pdas.prism.eox.at`, `d.emg.pdas.prism.eox.at`, `e.emg.pdas.prism.eox.at`, `f.emg.pdas.prism.eox.at`, `g.emg.pdas.prism.eox.at`, `h.emg.pdas.prism.eox.at`) && PathPrefix(`/cache`) && HeadersRegexp(`Referer`, `(https?://)?(panda.copernicus.eu|panda.cdsv3.eu|panda-demo.ondaprism.eu|emg.pdas.prism.eox.at)/?`)"
- "traefik.http.routers.emg-cache_referer-redirect.middlewares=redirect@file"
- "traefik.http.routers.emg-cache_referer-redirect.entrypoints=http"
# general
- "traefik.http.services.emg-cache.loadbalancer.sticky=false"
- "traefik.http.services.emg-cache.loadbalancer.server.port=80"
- "traefik.docker.network=pdas_extnet"
- "traefik.docker.lbswarm=true"
- "traefik.enable=true"
networks:
- extnet
registrar:
environment:
INSTALL_DIR: "/var/www/pdas/ops/"
# redis-manager:
# environment:
# INSTALL_DIR: "/var/www/pdas/ops/"
client:
configs:
- source: client-ops
target: /usr/share/nginx/html/index.html
deploy:
labels:
# router for basic auth based access (https)
- "traefik.http.routers.emg-client.rule=Host(`emg.pdas.prism.eox.at`)"
- "traefik.http.routers.emg-client.middlewares=auth@file,compress@file"
- "traefik.http.routers.emg-client.tls=true"
- "traefik.http.routers.emg-client.tls.certresolver=default"
- "traefik.http.routers.emg-client.entrypoints=https"
# router for basic auth based access (http)
- "traefik.http.routers.emg-client-redirect.rule=Host(`emg.pdas.prism.eox.at`)"
- "traefik.http.routers.emg-client-redirect.middlewares=redirect@file"
- "traefik.http.routers.emg-client-redirect.entrypoints=http"
# general
- "traefik.http.services.emg-client.loadbalancer.sticky=false"
- "traefik.http.services.emg-client.loadbalancer.server.port=80"
- "traefik.docker.network=pdas_extnet"
- "traefik.docker.lbswarm=true"
- "traefik.enable=true"
networks:
- extnet
preprocessor:
volumes:
- type: bind
source: /var/vhr
target: /tmp
networks:
extnet:
name: emg-extnet
external: true
version: "3.6"
services:
database:
image: mdillon/postgis:10
volumes:
- db-data:/var/lib/postgresql/data
env_file:
- env/emg.env
- env/emg_db.env
environment:
INSTANCE_ID: "prism-data-access-server_database"
deploy:
placement:
constraints: [node.role == manager]
networks:
- intnet
redis:
image: redis
volumes:
- redis-data:/data
deploy:
placement:
constraints: [node.role == manager]
networks:
- intnet
renderer:
image: registry.gitlab.eox.at/esa/prism/vs/pdas_core:latest
volumes:
- type: tmpfs
target: /tmp
- type: volume
source: cache-db
target: /cache-db
- type: volume
source: instance-data
target: /var/www/pdas
env_file:
- env/emg.env
- env/emg_db.env
- env/emg_django.env
- env/emg_obs.env
environment:
INSTANCE_ID: "prism-data-access-server_renderer"
INSTALL_DIR: "/var/www/pdas/dev/"
deploy:
replicas: 1
networks:
- intnet
command:
["/wait-for-database.sh", "/run-httpd.sh"]
cache:
image: registry.gitlab.eox.at/esa/prism/vs/pdas_cache:latest
volumes:
- type: tmpfs
target: /tmp
- type: volume
source: cache-db
target: /cache-db
env_file:
- env/emg.env
- env/emg_obs.env
environment:
INSTANCE_ID: "prism-data-access-server_cache"
RENDERER_HOST: renderer
deploy:
replicas: 1
networks:
- intnet
command:
["/run-httpd.sh"]
seeder:
image: registry.gitlab.eox.at/esa/prism/vs/pdas_cache:latest
volumes:
- type: tmpfs
target: /tmp
- type: volume
source: cache-db
target: /cache-db
env_file:
- env/emg.env
- env/emg_obs.env
- env/emg_redis.env
environment:
INSTANCE_ID: "prism-data-access-server_seeder"
RENDERER_HOST: renderer
deploy:
replicas: 0
networks:
- intnet
command:
["/run-seeder.sh"]
preprocessor:
image: registry.gitlab.eox.at/esa/prism/vs/pdas_preprocessor:latest
env_file:
- env/emg.env
- env/emg_obs.env
- env/emg_redis.env
environment:
INSTANCE_ID: "prism-data-access-server_preprocessor"
deploy:
replicas: 1
networks:
- intnet
command:
["/run-preprocessor.sh"]
registrar:
image: registry.gitlab.eox.at/esa/prism/vs/pdas_core:latest
volumes:
- type: tmpfs
target: /tmp
- type: volume
source: instance-data
target: /var/www/pdas
env_file:
- env/emg.env
- env/emg_db.env
- env/emg_obs.env
- env/emg_redis.env
environment:
INSTANCE_ID: "prism-data-access-server_registrar"
INSTALL_DIR: "/var/www/pdas/dev/"
SCALEFACTOR: "1"
IN_MEMORY: "false"
deploy:
replicas: 1
networks:
- intnet
command:
["/wait-for-database.sh", "/run-registrar.sh"]
# redis-manager:
# image: registry.gitlab.eox.at/esa/prism/vs/pdas_core:latest
# volumes:
# - type: tmpfs
# target: /tmp
# - type: volume
# source: cache-db
# target: /cache-db
# env_file:
# - env/emg.env
# - env/emg_db.env
# - env/emg_redis.env
# environment:
# INSTANCE_ID: "prism-data-access-server_redis-manager"
# INSTALL_DIR: "/var/www/pdas/dev/"
# CACHE_DB_PATH: "/cache-db/emg_mapcache_cache.sqlite"
# deploy:
# replicas: 0
# networks:
# - intnet
# command:
# ["/wait-for-database.sh", "/run-redis-manager.sh"]
client:
image: registry.gitlab.eox.at/esa/prism/vs/pdas_client:latest
deploy:
replicas: 1
configs:
mapcache-dev:
file: ./config/emg_mapcache-dev.xml
mapcache-ops:
file: ./config/emg_mapcache-ops.xml
client-dev:
file: ./config/emg_index-dev.html
client-ops:
file: ./config/emg_index-ops.html
volumes:
db-data:
redis-data:
cache-db:
instance-data:
networks:
intnet:
version: "3.6"
services:
client:
ports:
- "80:80"
configs:
- source: client-dev
target: /usr/share/nginx/html/index.html
renderer:
ports:
- "81:80"
- "82:8080"
volumes:
- type: bind
source: ./data/
target: /data/
registrar:
volumes:
- type: bind
source: ./data/
target: /data/
- type: bind
source: ./core/
target: /core/
cache:
ports:
- "83:80"
volumes:
- type: bind
source: ./data/
target: /data/
configs:
- source: mapcache-dev
target: /mapcache-template.xml
preprocessor:
volumes:
- type: tmpfs
target: /tmp
- type: bind
source: ./preprocessor/
target: /preprocessor/
version: "3.6"
services:
database:
volumes:
- type: tmpfs
target: /dev/shm
tmpfs:
size: 536870912
renderer:
environment:
INSTALL_DIR: "/var/www/pdas/ops/"
deploy:
labels:
# router for basic auth based access (https)
- "traefik.http.routers.vhr18-renderer.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`) && PathPrefix(`/ows`, `/opensearch`, `/admin`)"
- "traefik.http.routers.vhr18-renderer.middlewares=auth@file,compress@file"
- "traefik.http.routers.vhr18-renderer.tls=true"
- "traefik.http.routers.vhr18-renderer.tls.certresolver=default"
- "traefik.http.routers.vhr18-renderer.entrypoints=https"
# router for basic auth based access (http)
- "traefik.http.routers.vhr18-renderer-redirect.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`) && PathPrefix(`/ows`, `/opensearch`, `/admin`)"
- "traefik.http.routers.vhr18-renderer-redirect.middlewares=redirect@file"
- "traefik.http.routers.vhr18-renderer-redirect.entrypoints=http"
# router for referrer based access (https)
- "traefik.http.routers.vhr18-renderer_referer.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`) && PathPrefix(`/ows`, `/opensearch`, `/admin`) && HeadersRegexp(`Referer`, `(https?://)?(panda.copernicus.eu|panda.cdsv3.eu|panda-demo.ondaprism.eu|vhr18.pdas.prism.eox.at)/?`)"
- "traefik.http.routers.vhr18-renderer_referer.middlewares=compress@file"
- "traefik.http.routers.vhr18-renderer_referer.tls=true"
- "traefik.http.routers.vhr18-renderer_referer.tls.certresolver=default"
- "traefik.http.routers.vhr18-renderer_referer.entrypoints=https"
# router for referrer based access (http)
- "traefik.http.routers.vhr18-renderer_referer-redirect.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`) && PathPrefix(`/ows`, `/opensearch`, `/admin`) && HeadersRegexp(`Referer`, `(https?://)?(panda.copernicus.eu|panda.cdsv3.eu|panda-demo.ondaprism.eu|vhr18.pdas.prism.eox.at)/?`)"
- "traefik.http.routers.vhr18-renderer_referer-redirect.middlewares=redirect@file"
- "traefik.http.routers.vhr18-renderer_referer-redirect.entrypoints=http"
# general
- "traefik.http.services.vhr18-renderer.loadbalancer.sticky=false"
- "traefik.http.services.vhr18-renderer.loadbalancer.server.port=80"
- "traefik.docker.network=pdas_extnet"
- "traefik.docker.lbswarm=true"
- "traefik.enable=true"
resources:
limits:
memory: 12G #TODO 4G ended up with many processes in D state, supposedly because of swapping
networks:
- extnet
cache:
configs:
- source: mapcache-ops
target: /mapcache-template.xml
deploy:
labels:
- "traefik.http.middlewares.cache-stripprefix.stripprefix.prefixes=/cache"
# router for basic auth based access (https)
- "traefik.http.routers.vhr18-cache.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`) && PathPrefix(`/cache`)"
- "traefik.http.routers.vhr18-cache.middlewares=auth@file,cache-stripprefix,compress@file"
- "traefik.http.routers.vhr18-cache.tls=true"
- "traefik.http.routers.vhr18-cache.tls.certresolver=default"
- "traefik.http.routers.vhr18-cache.entrypoints=https"
# router for basic auth based access (http)
- "traefik.http.routers.vhr18-cache-redirect.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`) && PathPrefix(`/cache`)"
- "traefik.http.routers.vhr18-cache-redirect.middlewares=redirect@file"
- "traefik.http.routers.vhr18-cache-redirect.entrypoints=http"
# router for referrer based access (https)
- "traefik.http.routers.vhr18-cache_referer.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`) && PathPrefix(`/cache`) && HeadersRegexp(`Referer`, `(https?://)?(panda.copernicus.eu|panda.cdsv3.eu|panda-demo.ondaprism.eu|vhr18.pdas.prism.eox.at)/?`)"
- "traefik.http.routers.vhr18-cache_referer.middlewares=cache-stripprefix,compress@file"
- "traefik.http.routers.vhr18-cache_referer.tls=true"
- "traefik.http.routers.vhr18-cache_referer.tls.certresolver=default"
- "traefik.http.routers.vhr18-cache_referer.entrypoints=https"
# router for referrer based access (http)
- "traefik.http.routers.vhr18-cache_referer-redirect.rule=Host(`vhr18.pdas.prism.eox.at`, `a.vhr18.pdas.prism.eox.at`, `b.vhr18.pdas.prism.eox.at`, `c.vhr18.pdas.prism.eox.at`, `d.vhr18.pdas.prism.eox.at`, `e.vhr18.pdas.prism.eox.at`, `f.vhr18.pdas.prism.eox.at`, `g.vhr18.pdas.prism.eox.at`, `h.vhr18.pdas.prism.eox.at`) && PathPrefix(`/cache`) && HeadersRegexp(`Referer`, `(https?://)?(panda.copernicus.eu|panda.cdsv3.eu|panda-demo.ondaprism.eu|vhr18.pdas.prism.eox.at)/?`)"
- "traefik.http.routers.vhr18-cache_referer-redirect.middlewares=redirect@file"
- "traefik.http.routers.vhr18-cache_referer-redirect.entrypoints=http"
# general
- "traefik.http.services.vhr18-cache.loadbalancer.sticky=false"
- "traefik.http.services.vhr18-cache.loadbalancer.server.port=80"
- "traefik.docker.network=pdas_extnet"
- "traefik.docker.lbswarm=true"
- "traefik.enable=true"
networks:
- extnet
registrar:
environment:
INSTALL_DIR: "/var/www/pdas/ops/"
# redis-manager:
# environment:
# INSTALL_DIR: "/var/www/pdas/ops/"
client:
configs:
- source: client-ops
target: /usr/share/nginx/html/index.html
deploy:
labels:
# router for basic auth based access (https)
- "traefik.http.routers.vhr18-client.rule=Host(`vhr18.pdas.prism.eox.at`)"
- "traefik.http.routers.vhr18-client.middlewares=auth@file,compress@file"
- "traefik.http.routers.vhr18-client.tls=true"
- "traefik.http.routers.vhr18-client.tls.certresolver=default"
- "traefik.http.routers.vhr18-client.entrypoints=https"
# router for basic auth based access (http)
- "traefik.http.routers.vhr18-client-redirect.rule=Host(`vhr18.pdas.prism.eox.at`)"
- "traefik.http.routers.vhr18-client-redirect.middlewares=redirect@file"
- "traefik.http.routers.vhr18-client-redirect.entrypoints=http"
# general
- "traefik.http.services.vhr18-client.loadbalancer.sticky=false"
- "traefik.http.services.vhr18-client.loadbalancer.server.port=80"
- "traefik.docker.network=pdas_extnet"
- "traefik.docker.lbswarm=true"
- "traefik.enable=true"
networks:
- extnet
preprocessor:
volumes:
- type: bind
source: /var/vhr
target: /tmp
networks:
extnet:
name: vhr18-extnet
external: true
version: "3.6"
services:
database:
image: mdillon/postgis:10
volumes:
- db-data:/var/lib/postgresql/data
env_file:
- env/vhr18.env
- env/vhr18_db.env
environment:
INSTANCE_ID: "prism-data-access-server_database"
deploy:
placement:
constraints: [node.role == manager]
networks:
- intnet
redis:
image: redis
volumes:
- redis-data:/data
deploy:
placement:
constraints: [node.role == manager]
networks:
- intnet
renderer:
image: registry.gitlab.eox.at/esa/prism/vs/pdas_core:latest
volumes:
- type: tmpfs
target: /tmp
- type: volume
source: cache-db
target: /cache-db
- type: volume
source: instance-data
target: /var/www/pdas
env_file:
- env/vhr18.env
- env/vhr18_db.env
- env/vhr18_django.env
- env/vhr18_obs.env
environment:
INSTANCE_ID: "prism-data-access-server_renderer"
INSTALL_DIR: "/var/www/pdas/dev/"
deploy:
replicas: 1
networks:
- intnet
command:
["/wait-for-database.sh", "/run-httpd.sh"]
cache:
image: registry.gitlab.eox.at/esa/prism/vs/pdas_cache:latest
volumes:
- type: tmpfs
target: /tmp
- type: volume
source: cache-db
target: /cache-db
env_file:
- env/vhr18.env
- env/vhr18_obs.env
environment:
INSTANCE_ID: "prism-data-access-server_cache"
RENDERER_HOST: renderer
deploy:
replicas: 1
networks:
- intnet
command:
["/run-httpd.sh"]
seeder:
image: registry.gitlab.eox.at/esa/prism/vs/pdas_cache:latest
volumes:
- type: tmpfs
target: /tmp
- type: volume
source: cache-db
target: /cache-db
env_file:
- env/vhr18.env
- env/vhr18_obs.env
- env/vhr18_redis.env
environment:
INSTANCE_ID: "prism-data-access-server_seeder"
RENDERER_HOST: renderer
deploy:
replicas: 0
networks:
- intnet
command:
["/run-seeder.sh"]
preprocessor:
image: registry.gitlab.eox.at/esa/prism/vs/pdas_preprocessor:latest
env_file:
- env/vhr18.env
- env/vhr18_obs.env
- env/vhr18_redis.env
environment:
INSTANCE_ID: "prism-data-access-server_preprocessor"
deploy:
replicas: 1
networks:
- intnet
command:
["/run-preprocessor.sh"]
registrar:
image: registry.gitlab.eox.at/esa/prism/vs/pdas_core:latest
volumes:
- type: tmpfs
target: /tmp
- type: volume
source: instance-data
target: /var/www/pdas
env_file:
- env/vhr18.env
- env/vhr18_db.env
- env/vhr18_obs.env
- env/vhr18_redis.env
environment:
INSTANCE_ID: "prism-data-access-server_registrar"
INSTALL_DIR: "/var/www/pdas/dev/"
SCALEFACTOR: "1"
IN_MEMORY: "false"
deploy:
replicas: 1
networks:
- intnet
command:
["/wait-for-database.sh", "/run-registrar.sh"]
# redis-manager:
# image: registry.gitlab.eox.at/esa/prism/vs/pdas_core:latest
# volumes:
# - type: tmpfs
# target: /tmp
# - type: volume
# source: cache-db
# target: /cache-db
# env_file:
# - env/vhr18.env
# - env/vhr18_db.env
# - env/vhr18_redis.env
# environment:
# INSTANCE_ID: "prism-data-access-server_redis-manager"
# INSTALL_DIR: "/var/www/pdas/dev/"
# CACHE_DB_PATH: "/cache-db/vhr18_mapcache_cache.sqlite"
# deploy:
# replicas: 0
# networks:
# - intnet
# command:
# ["/wait-for-database.sh", "/run-redis-manager.sh"]
client:
image: registry.gitlab.eox.at/esa/prism/vs/pdas_client:latest
deploy:
replicas: 1
configs:
mapcache-dev:
file: ./config/vhr18_mapcache-dev.xml
mapcache-ops:
file: ./config/vhr18_mapcache-ops.xml
client-dev:
file: ./config/vhr18_index-dev.html
client-ops:
file: ./config/vhr18_index-ops.html
volumes:
db-data:
redis-data:
cache-db:
instance-data:
networks:
intnet:
COLLECTION=Emergency
GDAL_DISABLE_READDIR_ON_OPEN=TRUE
CPL_VSIL_CURL_ALLOWED_EXTENSIONS=.TIF,.tif,.xml
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_QUEUE_KEY=seed_queue
REDIS_PREPROCESS_QUEUE_KEY=preprocess_queue
REDIS_REGISTER_QUEUE_KEY=register_queue
REDIS_REGISTERED_SET_KEY=registered_set
REDIS_SET_KEY=registered_set
REDIS_SEED_QUEUE_KEY=seed_queue
COLLECTION=VHR_IMAGE_2018
GDAL_DISABLE_READDIR_ON_OPEN=TRUE
CPL_VSIL_CURL_ALLOWED_EXTENSIONS=.TIF,.tif,.xml
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment