Instance¶
EOxServer can only be used in an instantiated Django project. This instance incorporates the whole configuration necessary to run the web application. With this approach it is possible to deploy more than one web application per host.
Creation¶
An instance can be created in multiple ways. The easiest way is to run the
eoxserver-instance.py
script, that available through the EOxServer Python
package, which has to be installed first. See the Installation for more
details.
Another option is to use the django-admin
command to start a new Django
project, that will later be enhanced to be a fully functioning EOxServer. See
next section Configuration for what can be configured.
Configuration¶
The instance provides various different configuration files to configure the resulting web application. As each EOxServer instance is a Django Project at its core, it inherits all its configuration files.
These files are first and foremost the settings.py
and urls.py
files,
but also the wsgi.py
and manage.py
to a lesser degree.
EOxServer uses the settings.py
file to configure some of its internal
functions. Please see the next section for the available sections and their
effect.
Please see the Django Documentation for a coverage of the configuration capabilities.
Configurations in settings.py¶
These settings are used by Django directly, but are usually necessary do adapt:
- PROJECT_DIR
- Absolute path to the instance directory.
- DATABASES
- The database connection details. EOxServer requires a spatially enabled database backend. Both Spatialite and PostGIS are tested and known to work.
- LOGGING
- what and how logs are prcessed and stored. EOxServer provides a very basic configuration that stores logfiles in the instace directory, but they will probably not be suitable for every instance.
You can also customize further settings, for a complete reference please refer to the Django settings overview.
Please especially consider the setting of the TIME_ZONE
parameter and read the Notes provided in the settings.py
file.
The following settings can be used to configure various parts of EOxServer.
- EOXS_STORAGE_HANDLERS
The enabled storage handlers as a list of paths to their respective implementing class.
Default:
[ 'eoxserver.backends.storages.ZIPStorageHandler', 'eoxserver.backends.storages.TARStorageHandler', 'eoxserver.backends.storages.DirectoryStorageHandler', 'eoxserver.backends.storages.HTTPStorageHandler', 'eoxserver.backends.storages.FTPStorageHandler', 'eoxserver.backends.storages.SwiftStorageHandler', ]
- EOXS_STORAGE_AUTH_HANDLERS
The enabled storage authorization handlers as a list of paths to their respective implementing class.
Default:
[ 'eoxserver.backends.keystone.storage_auth.KeystoneStorageAuthHandler', ]
- EOXS_MAP_RENDERER (=”eoxserver.render.mapserver.map_renderer.MapserverMapRenderer”)
The map renderer to use for map rendering such as in WMS GetMap requests.
Default:
"eoxserver.render.mapserver.map_renderer.MapserverMapRenderer"
- EOXS_MAPSERVER_LAYER_FACTORIES
The list of layer factories for when the default MapServer map renderer is used.
Default:
[ 'eoxserver.render.mapserver.factories.CoverageLayerFactory', 'eoxserver.render.mapserver.factories.OutlinedCoverageLayerFactory', 'eoxserver.render.mapserver.factories.MosaicLayerFactory', 'eoxserver.render.mapserver.factories.BrowseLayerFactory', 'eoxserver.render.mapserver.factories.OutlinedBrowseLayerFactory', 'eoxserver.render.mapserver.factories.MaskLayerFactory', 'eoxserver.render.mapserver.factories.MaskedBrowseLayerFactory', 'eoxserver.render.mapserver.factories.OutlinesLayerFactory', ]
- EOXS_COVERAGE_METADATA_FORMAT_READERS
The list of coverage metadata readers that will be employed to read metadata when a new coverage is registered.
Default:
[ 'eoxserver.resources.coverages.metadata.coverage_formats.gsc.GSCFormatReader', 'eoxserver.resources.coverages.metadata.coverage_formats.dimap_general.DimapGeneralFormatReader', 'eoxserver.resources.coverages.metadata.coverage_formats.eoom.EOOMFormatReader', 'eoxserver.resources.coverages.metadata.coverage_formats.gdal_dataset.GDALDatasetMetadataReader', 'eoxserver.resources.coverages.metadata.coverage_formats.inspire.InspireFormatReader', 'eoxserver.resources.coverages.metadata.coverage_formats.native.NativeFormat', 'eoxserver.resources.coverages.metadata.coverage_formats.native_config.NativeConfigFormatReader', 'eoxserver.resources.coverages.metadata.coverage_formats.landsat8_l1.Landsat8L1CoverageMetadataReader', ]
- EOXS_COVERAGE_METADATA_GDAL_DATASET_FORMAT_READERS
The list of coverage metadata readers that will be employed to read metadata when a new coverage is registered. These readers will use a GDAL dataset underneath.
Default:
[ 'eoxserver.resources.coverages.metadata.coverage_formats.gdal_dataset_envisat.GDALDatasetEnvisatMetadataFormatReader', ]
- EOXS_PRODUCT_METADATA_FORMAT_READERS
The list of product metadata readers that will be employed to read metadata when a new product is registered.
Default:
[ 'eoxserver.resources.coverages.metadata.product_formats.sentinel1.S1ProductFormatReader', 'eoxserver.resources.coverages.metadata.product_formats.sentinel2.S2ProductFormatReader', 'eoxserver.resources.coverages.metadata.product_formats.landsat8_l1.Landsat8L1ProductMetadataReader', 'eoxserver.resources.coverages.metadata.coverage_formats.eoom.EOOMFormatReader', 'eoxserver.resources.coverages.metadata.product_formats.gsc.GSCProductMetadataReader', ]
- EOXS_MAPSERVER_CONNECTORS
Default:
[ 'eoxserver.services.mapserver.connectors.simple_connector.SimpleConnector', 'eoxserver.services.mapserver.connectors.multifile_connector.MultiFileConnector', 'eoxserver.services.mapserver.connectors.mosaic_connector.MosaicConnector', ]
- EOXS_OPENSEARCH_FORMATS
The list of OpenSearch result formats that shall be available for searching.
Default:
[ 'eoxserver.services.opensearch.formats.atom.AtomResultFormat', 'eoxserver.services.opensearch.formats.rss.RSSResultFormat', 'eoxserver.services.opensearch.formats.html.HTMLResultFormat', 'eoxserver.services.opensearch.formats.kml.KMLResultFormat', 'eoxserver.services.opensearch.formats.geojson.GeoJSONResultFormat', ]
- EOXS_OPENSEARCH_EXTENSIONS
The list of OpenSearch extension implementations.
Default:
[ 'eoxserver.services.opensearch.extensions.eo.EarthObservationExtension', 'eoxserver.services.opensearch.extensions.geo.GeoExtension', 'eoxserver.services.opensearch.extensions.time.TimeExtension', 'eoxserver.services.opensearch.extensions.cql.CQLExtension', ]
- EOXS_OPENSEARCH_SUMMARY_TEMPLATE (=”opensearch/summary.html”)
The name of the template to use to generate the item summary.
Default:
"opensearch/summary.html"
- EOXS_OPENSEARCH_RECORD_MODEL (=”eoxserver.resources.coverages.models.EOObject”)
What record base model to use for OpenSearch searches. Can be set to
"eoxserver.resources.coverages.models.EOObject"
,"eoxserver.resources.coverages.models.Coverage"
, or"eoxserver.resources.coverages.models.Product"
. When using the generic EOObject the search can find both Products and Coverages, but the underlying query is significantly more complex, negatively impacting the performance.Default:
"eoxserver.resources.coverages.models.EOObject"
- EOXS_OWS_SERVICE_HANDLERS
The enabled OWS service handlers. This configuration specifies what OWS services and versions are available for this instance.
Default:
[ 'eoxserver.services.ows.wcs.v10.handlers.GetCapabilitiesHandler', 'eoxserver.services.ows.wcs.v10.handlers.DescribeCoverageHandler', 'eoxserver.services.ows.wcs.v10.handlers.GetCoverageHandler', 'eoxserver.services.ows.wcs.v11.handlers.GetCapabilitiesHandler', 'eoxserver.services.ows.wcs.v11.handlers.DescribeCoverageHandler', 'eoxserver.services.ows.wcs.v11.handlers.GetCoverageHandler', 'eoxserver.services.ows.wcs.v20.handlers.GetCapabilitiesHandler', 'eoxserver.services.ows.wcs.v20.handlers.DescribeCoverageHandler', 'eoxserver.services.ows.wcs.v20.handlers.DescribeEOCoverageSetHandler', 'eoxserver.services.ows.wcs.v20.handlers.GetCoverageHandler', 'eoxserver.services.ows.wcs.v20.handlers.GetEOCoverageSetHandler', 'eoxserver.services.ows.wms.v10.handlers.WMS10GetCapabilitiesHandler', 'eoxserver.services.ows.wms.v10.handlers.WMS10GetMapHandler', 'eoxserver.services.ows.wms.v11.handlers.WMS11GetCapabilitiesHandler', 'eoxserver.services.ows.wms.v11.handlers.WMS11GetMapHandler', 'eoxserver.services.ows.wms.v13.handlers.WMS13GetCapabilitiesHandler', 'eoxserver.services.ows.wms.v13.handlers.WMS13GetMapHandler', 'eoxserver.services.ows.wps.v10.getcapabilities.WPS10GetCapabilitiesHandler', 'eoxserver.services.ows.wps.v10.describeprocess.WPS10DescribeProcessHandler', 'eoxserver.services.ows.wps.v10.execute.WPS10ExecuteHandler', 'eoxserver.services.ows.dseo.v10.handlers.GetCapabilitiesHandler', 'eoxserver.services.ows.dseo.v10.handlers.GetProductHandler', ]
- EOXS_OWS_EXCEPTION_HANDLERS
The enabled OWS service exception handlers. This is similar to the service handlers, but defines how exceptions are encoded.
Default:
[ 'eoxserver.services.ows.wcs.v10.exceptionhandler.WCS10ExceptionHandler', 'eoxserver.services.ows.wcs.v11.exceptionhandler.WCS11ExceptionHandler', 'eoxserver.services.ows.wcs.v20.exceptionhandler.WCS20ExceptionHandler', 'eoxserver.services.ows.wms.v13.exceptionhandler.WMS13ExceptionHandler', ]
- EOXS_CAPABILITIES_RENDERERS
The WCS capabilities renderers to use. Each one is tried with the given request parameters and the first fitting one is used.
Default:
[ 'eoxserver.services.native.wcs.capabilities_renderer.NativeWCS20CapabilitiesRenderer', 'eoxserver.services.mapserver.wcs.capabilities_renderer.MapServerWCSCapabilitiesRenderer', ]
- EOXS_COVERAGE_DESCRIPTION_RENDERERS
The WCS coverage description renderers to use. For a DescribeCoverage request each implementation checked for compatibility and the first fitting one is used.
Default:
[ 'eoxserver.services.mapserver.wcs.coverage_description_renderer.CoverageDescriptionMapServerRenderer', 'eoxserver.services.native.wcs.coverage_description_renderer.NativeWCS20CoverageDescriptionRenderer', ]
- EOXS_COVERAGE_RENDERERS
The WCS coverage renderers to use. For a GetCoverage request each implementation checked for compatibility and the first fitting one is used.
Default:
[ 'eoxserver.services.mapserver.wcs.coverage_renderer.RectifiedCoverageMapServerRenderer', 'eoxserver.services.gdal.wcs.referenceable_dataset_renderer.GDALReferenceableDatasetRenderer', ]
- EOXS_COVERAGE_ENCODING_EXTENSIONS
Additional coverage encoding extensions to use.
Default:
[ 'eoxserver.services.ows.wcs.v20.encodings.geotiff.WCS20GeoTIFFEncodingExtension' ]
- EOXS_PROCESSES
This setting defines what processes shall be available for WPS.
Default:
[ 'eoxserver.services.ows.wps.processes.get_time_data.GetTimeDataProcess' ]
- EOXS_ASYNC_BACKENDS (=[])
- The enabled WPS asynchronous backends. This setting is necessary to enable asynchronous WPS.
Configurations in eoxserver.conf
¶
The eoxserver.conf
uses the .ini
file structure. This means the file is
divided into sections like this: [some.section]
. The following sections and
their respective configuration keys are as follows:
- [core.system]
- instance_id
- Mandatory. The ID (name) of your instance. This is used on several locations throughout EOxServer and is inserted into a number of service responses.
- [processing.gdal.reftools]
- vrt_tmp_dir
- A path to a directory for temporary files created during the orthorectification of referencial coverages. This configuration option defaults to the systems standard.
- [resources.coverages.coverage_id]
- reservation_time
- Determines the time a coverage ID is reserved when inserting a coverage into the system. Needs to be in the following form: <days>:<hours>:<minutes>:<seconds> and defaults to 0:0:30:0.
- [services.owscommon]
- http_service_url
- Mandatory. This parameter is the actual domain and path URL to the OWS services served with the EOxServer instance. This parameter is used in various contexts and is also included in several OWS service responses.
- [services.ows]
This section entails various service metadata settings which are embedded in W*S GetCapabilities documents.
- update_sequence=20131219T132000Z
- The service capabilities update sequence. This is used for clients to determine whether or not the service experienced updates since the last sequence.
- name=EOxServer EO-WCS
- The service instance name.
- title=Test configuration of MapServer used to demonstrate EOxServer
- The service instance title.
- abstract=Test configuration of MapServer used to demonstrate EOxServer
- The service instance abstract/description.
- onlineresource=http://eoxserver.org
- The service link.
- keywords=<KEYWORDLIST>
- A comma separated list of keywords for this service.
- fees=None
- Some additional information about service fees.
- access_constraints=None
- Whether and how the service access is constrained.
- provider_name=<CONTACTORGANIZATION>
- The service providing organizations name.
- provider_site=<URL>
- The service providing organizations HTTP URL.
- individual_name=<CONTACTPERSON>
- The main contact persons name.
- position_name=<CONTACTPOSITION>
- The main contact persons position.
- phone_voice=<CONTACTVOICETELEPHONE>
- The main contact persons voice phone number.
- phone_facsimile=<CONTACTFACSIMILETELEPHONE>
- The main contact persons facsimile phone number.
- electronic_mail_address=<CONTACTELECTRONICMAILADDRESS>
- The main contact persons email address.
- delivery_point=<ADDRESS>
- The service providing organizations address.
- city=<CITY>
- The service providing organizations city.
- administrative_area=<STATEORPROVINCE>
- The service providing organizations province.
- postal_code=<POSTCODE>
- The service providing organizations postal code.
- country=<COUNTRY>
- The service providing organizations country.
- hours_of_service=<HOURSOFSERVICE>
- The service providing organizations hours of service.
- contact_instructions=<CONTACTINSTRUCTIONS>
- Additional contact instructions
- role=Service provider
- The service providing organizations role.
- [services.ows.wms]
- supported_formats=<MIME type>[,<MIME type>[,<MIME type> … ]]
- A comma-separated list of MIME-types defining the raster file format
supported by the WMS
getMap()
operation. The MIME-types used for this option must be defined in the Format Registry (see “Supported Raster File Formats and Their Configuration”). - supported_crs=<EPSG-code>[,<EPSG-code>[,<EPSG-code> … ]]
- List of common CRSes supported by the WMS
getMap()
operation (see also “Supported CRSs and Their Configuration”).
- [services.ows.wcs]
- supported_formats=<MIME type>[,<MIME type>[,<MIME type> … ]]
- A comma-separated list of MIME-types defining the raster file format
supported by the WCS
getCoverage()
operation. The MIME-types used for this option must be defined in the Format Registry (see “Supported Raster File Formats and Their Configuration”). - supported_crs= <EPSG-code>[,<EPSG-code>[,<EPSG-code> … ]]
- List of common CRSes supported by the WCS
getMap()
operation. (see also “Supported CRSs and Their Configuration”).
- [services.ows.wcs20]
- paging_count_default=10
- The maximum number of wcs:coverageDescription elements returned in a WCS 2.0 EOCoverageSetDescription. This also limits the count parameter. Defaults to 10.
- default_native_format=<MIME-type>
- The default native format cases when the source format cannot be used (read-only GDAL driver) and there is no explicit source-to-native format mapping. This option must be always set to a valid format (GeoTIFF by default). The MIME-type used for this option must be defined in the Format Registry (see “Supported Raster File Formats and Their Configuration”).
- source_to_native_format_map=[<src.MIME-type,native-MIME-type>[,<src.MIME-type,native-MIME-type> … ]]
- The explicit source to native format mapping. As the name suggests, it defines mapping of the (zero, one, or more) source formats to a non-defaults native formats. The source formats are not restricted to the read-only ones. This option accepts comma-separated list of MIME-type pairs. The MIME-types used for this option must be defined in the Format Registry (see “Supported Raster File Formats and Their Configuration”).
- maxsize=2048
- The maximum size for each dimension in WCS GetCoverage responses. All sizes above will result in exception reports.
Setup¶
When your instance is configured, several steps need to be taken in order to set up the application. First off, the configured database needs to be migrated. This is achieved using the migrate command. The following command performs the necessary migrations:
python manage.py migrate
Migration performs various steps depending on the necessity. For example it creates a database schema if it is not already present. If there already is a database schema, it is inspected to see whether it needs to be updated. If yes both the schema and the data already in the database will be updated.
Finally all the static files need to be collected at the location configured
by STATIC_ROOT
in settings.py
by using the following command from
within your instance:
python manage.py collectstatic