.. highlight:: text .. _sec_release_notes: ############# Release Notes ############# rasdaman v10.5 (2025-04-04) =========================== New features, enhancements, bug fixes ------------------------------------- OGC frontend (petascope) ^^^^^^^^^^^^^^^^^^^^^^^^ - Support for OpenEO batch jobs (:ref:`docs `) - Improve handling of concurrent update operations in petascope - Fixed web admin page and web API to not allow updating user's current access per month - Fixed API to check if a coverage exist - Fixed petascopedb migration - Fixed internal SECORE is not loadable from external tomcat - Fixed to allow second operand of WCPS ``bit()``, ``mod()`` and ``pow()`` as a coverage expression - Fixed error in WCPS query when scaling a condense declared in ``LET`` clause rasdaman core ^^^^^^^^^^^^^ - Encoding to CSV / JSON formats is faster by up to an order of magnitude - Updated default formatting of CSV and JSON outputs (:ref:`docs `) - Improve performance of encoding to all formats when the intermediate results can fit in memory - Improve performance of applying color maps and transposing results before encode by up to an order of magnitude - Fixed determining amount of available memory in container environments rasfed ^^^^^^ - Handle qualified/unqualified collection name request properly - Enhanced cache in rasdaman by notifying inpeer/collection changes from local rasfed - Added error logs in case petascope failed to deserialize JSON string reported by rasfed to objects wcst_import ^^^^^^^^^^^ - Existing ``camelCase`` settings in ingredients files have been deprecated, the ``snake_case`` alternatives should be used (:ref:`docs `) - Fixed ``wcs_extract`` recipe to work with arbitrary number of pixels specified in ``partitioning_scheme`` setting - Added new expression to extract a tag's value of a specific band in ``gdal`` recipe (:ref:`docs `) Upgrading --------- The sections below contain instructions on how to upgrade the software installation from a previous version to stable rasdaman v10.4. From v10.4 ^^^^^^^^^^ To upgrade from the previous stable version v10.4 to stable v10.5: 1. Stop rasdaman with ``sudo service rasdaman stop``; make sure that the processes are really stopped: if ``ps aux | grep -E 'ras(mgr|server)'`` returns any processes, stop them with ``pkill -9 -f 'ras(mgr|server)'`` 2. Update the repository metadata with ``sudo apt-get update`` 3. Two ways to upgrade rasdaman: - Upgrade all packages including rasdaman with ``sudo apt-get upgrade``, or - Upgrade only the rasdaman package with ``sudo apt-get install $(dpkg -l | grep "^ii *rasdaman" | awk '{ print $2; }')`` From testing ^^^^^^^^^^^^ To upgrade from the latest testing version to stable v10.5: 1. Stop rasdaman with ``sudo service rasdaman stop``; make sure that the processes are really stopped: if ``ps aux | grep -E 'ras(mgr|server)'`` returns any processes, stop them with ``pkill -9 -f 'ras(mgr|server)'`` 2. Remove the current rasdaman package with ``sudo apt-get remove $(dpkg -l | grep "rasdaman" | awk '{ print $2; }')``; this is required because the stable package generally has the same version but a lower iteration number than the testing one 3. Change the testing package repository to the stable one in ``/etc/apt/sources.list.d/rasdaman.list`` 4. Update the repository metadata with ``sudo apt-get update`` 5. Install the new rasdaman version with ``sudo apt-get install $(dpkg -l | grep "rasdaman" | awk '{ print $2; }')`` (:ref:`docs `) Migrating --------- For migrating from one to another OS version, see the :ref:`migration guide `. Incompatible changes -------------------- .. _changes-encode-csv-json: Encode to CSV/JSON ^^^^^^^^^^^^^^^^^^ The default format of CSV encoding (:ref:`docs `) is now closer to the standard formatting. Dimensions are distinguished by new lines instead of braces ("{" and "}"), and null values are omitted from the output. In particular, the following changes have been done to the default values of the supported "formatParameters": .. table:: Format parameter defaults changes +-----------------------+-----------------+-----------------+ | **option name** | **old default** | **new default** | +=======================+=================+=================+ | ``enableNull`` | ``false`` | ``true`` | +-----------------------+-----------------+-----------------+ | ``nullValue`` | N/A | ``""`` | +-----------------------+-----------------+-----------------+ | ``dimensionStart`` | ``"{"`` | ``""`` | +-----------------------+-----------------+-----------------+ | ``dimensionEnd`` | ``"}"`` | ``""`` | +-----------------------+-----------------+-----------------+ | ``dimensionSeparator``| ``","`` | ``"\n"`` | +-----------------------+-----------------+-----------------+ | ``prettyPrint`` (new) | N/A | ``true`` | +-----------------------+-----------------+-----------------+ If the old format of v10.4 and earlier is preferred, it can be achieved by adding the following to the format parameters of the ``encode`` function: .. hidden-code-block:: text encode(c, "CSV", "{ \"formatParameters\": { \"prettyPrint\": false, \"dimensionStart\": \"{\", \"dimensionEnd\": \"}\", \"dimensionSeparator\": \",\", \"enableNull\": false } }") The format of JSON has been also updated to pretty print the output with new lines and indentation by default. Reverting to the old behavior can be done by specifying ``"prettyPrint": false`` in the encode format parameters. .. _changes-wcst_import_snake_case: wcst_import settings ^^^^^^^^^^^^^^^^^^^^ Any ``camelCase`` settings in ``wcst_import`` ingredient files are deprecated (but still valid). It is recommended to update ingredient JSON files to use the corresponding ``snake_case`` variants. .. table:: ``camelCase`` to ``snake_case`` setting name changes +----------------------------+---------------------------------------+ | **old option** | **new option** | +============================+=======================================+ | ``pixelIsPoint`` | ``pixel_is_point`` | +----------------------------+---------------------------------------+ | ``observationType`` | ``observation_type`` | +----------------------------+---------------------------------------+ | ``nilValue`` | ``nil_value`` | +----------------------------+---------------------------------------+ | ``nilReason`` | ``nil_reason`` | +----------------------------+---------------------------------------+ | ``nilValues`` | ``nil_values`` | +----------------------------+---------------------------------------+ | ``uomCode`` | ``uom_code`` | +----------------------------+---------------------------------------+ | ``codeType`` | ``code_type`` | +----------------------------+---------------------------------------+ | ``codeSpace`` | ``code_space`` | +----------------------------+---------------------------------------+ | ``filterMessagesMatching`` | ``filter_messages_matching`` | +----------------------------+---------------------------------------+ | ``gridOrder`` | ``grid_order`` | +----------------------------+---------------------------------------+ | ``crsOrder`` | ``crs_order`` | +----------------------------+---------------------------------------+ | ``directPositions`` | ``direct_positions`` | +----------------------------+---------------------------------------+ | ``dataBound`` | ``data_bound`` | +----------------------------+---------------------------------------+ | ``areasOfValidity`` | ``areas_of_validity`` | +----------------------------+---------------------------------------+ | ``sliceGroupSize`` | ``slice_group_size`` | +----------------------------+---------------------------------------+ Configuration ^^^^^^^^^^^^^ ``allow_write_requests_from`` setting in ``petascope.properties`` is deprecated and will be removed in next major version (:ref:`docs `). raslib ^^^^^^ The ``r_Sinterval`` and ``r_Minterval`` C++ classes have changed memory layout, and may require recompilation of any C++ applications or C++ UDFs using them. Patch releases -------------- Below fixes in rasdaman v10.5.X patch releases are listed. v10.5.1 (2025-04-xx) ^^^^^^^^^^^^^^^^^^^^^ OGC frontend (petascope) - Improved parser for KVP subsets in WCS GetCoverage requests - Improved removing coverages in parallel - Improved inserting coverages in parallel rasdaman core - Python UDFs are automatically reloaded on changes without requiring to manually restart rasdaman wcst_import - Fixed null error when ``validity`` setting is specified - Throw error in case ``validity`` setting is specified, but ``direct_positions`` is not specified for ``data_bound`` is True rasdaman v10.4 (2024-11-29) =========================== New features, enhancements, bug fixes ------------------------------------- OGC frontend (petascope) ^^^^^^^^^^^^^^^^^^^^^^^^ - New simplified and consistent formula for translating geo to grid coordinates when importing / subsetting for regular axes (:ref:`docs `) - Support authentication of users via a GitHub account (:ref:`docs `) - New API for setting and retrieving a coverage thumbnail (:ref:`docs `) - Support passing user-defined parameters for a style fragment in WMS GetMap requests (:ref:`docs `) - Change result of admin/udf/listdetails requests to JSON format (:ref:`docs `) - UDFs can provide documentation via a ``getDocumentation()`` method in the UDF implementation (:ref:`docs `) - Changes in triggers or deleting a coverage will be automatically reflected in federated peers - Removed API for whitelist/blacklist WMS layers - Removed support for coverage metadata in JSON format - Required negative geo resolution for axis type Y when importing new coverage - Improved performance of WMS GetCapabilities with federated layers - Text responses, e.g. for GetCapabilities, will be compressed / decompressed automatically in the Web browser for faster download (:ref:`docs `) - Broadcast all layers in the federation instead of only whitelisted layers - In DescribeCoverage response the ``swe:label`` will be same as the ``swe:field`` name if a quantity's label is not set - Validate ``colorPaletteTable`` in coverage's metadata when updating / inserting - Throw exception when the WMS GetMap ``TIME`` parameter is not a specific datetime value - Show blacklisted federated coverages/layers from peer nodes when logged in as admin user - Improved checking peer petascope endpoints - Improved handling for escaped special XML characters in coverage's metadata - Improved checking a layer's existence when getting capabilities - Improved checking if a coverage exists in petascope's remote cache - Fixed out of memory error when deleting a coveage containing an axis with large number of coefficients - Fixed missing manually editted coverage's metadata in WCS DescribeCoverage responses - Fixed null value in WCPS calendar query when VALUES expression is a scalar value - Fixed error when concatenating values in an axis iterator domain for a calendar query - Fixed issue with zero value for axis extent resolution in petascopedb - Fixed issue with incorrect value for axis extent resolution of pyramid member coverages rasdaman core ^^^^^^^^^^^^^ - Support authentication of users via a GitHub account; rasql supports option --token as an alternative to --user/--passwd (:ref:`docs `) - Support granting/revoking a list of privileges to a role or user (:ref:`docs `) - Several new variants for listing privileges (:ref:`docs `) - Changing access control directly through rasql commands will be reflected in petascope without requiring a petascope restart - Removed ``PRIV_OWS_WMS_BLACKWHITELIST_LAYER`` privilege - Utility script ``/opt/rasdaman/bin/backup_rasdaman.sh`` to help with backing up the rasdaman installation, database and data (:ref:`docs `) - Improve listing federated collections in case of firewall timeouts - Fixed listing collections on a particular peer node when the port is specified as well - Fixed reporting of UPDATE/DELETE query execution times in rasserver logs - Fixed distinction of SELECT INTO queries as update statements in edge cases - Fixed serialization of scalar literals in federated subqueries - Fixed propagation of NULL scalar results in federated subquries wcst_import ^^^^^^^^^^^ - New setting ``thumbnail_path`` to set a coverage's thumbnail (:ref:`docs `) - New setting ``wms_styles`` to add styles to a WMS layer when inserting a coverage (:ref:`docs `) - New setting ``coverage_metadata`` to define non-rasdaman global metadata in ingredients file (:ref:`docs `) - New setting ``blacklist_source_coverages`` to control the visibility of source coverages of a virtual coverage (:ref:`docs `) - Support ``validity`` setting for adjusting ``areasOfValidity`` of updating coefficients implicitly (:ref:`docs `) - Match multiple input files to defined ``areasOfValidity``` in a single ingredients file - Support for ``OGC/O/Temporal`` CRS - Support for specifying band settings in ``sentinel1`` recipe - Removed support for coverage's metadata in JSON format - Nested functions in expressions are evaluated properly in python list comprehension federation ^^^^^^^^^^ - Removed properties ``penaltyTimeForBeingInactive`` in ``rasfed.properties`` and improved the way to verify if a peer node is active - Improved rasfed status update between peers - Improved federation communication between rasfed and petascope secore ^^^^^^ - Fixed issue to show invalid EPSG CRS with source opengis.net and - Aded new setting ``max_cache_size`` for controlling SECORE's cache size. - Added new setting ``ignore_agents_matching`` in ``secore.properties`` to filter requests crawling SECORE by user-agent bots Installation ^^^^^^^^^^^^ - The `mosquitto MQTT broker `__ is a new dependency of the rasdaman packages on Ubuntu 22.04 and upwards (:ref:`docs `) Documentation ^^^^^^^^^^^^^ - New guide for upgrading from Ubuntu 22.04 to Ubuntu 24.04 (:ref:`docs `) - New doc for configuration in ``secore.properties`` (:ref:`docs `) Upgrading --------- The sections below contain instructions on how to upgrade the software installation from a previous version to stable rasdaman v10.3. From v10.3 ^^^^^^^^^^ To upgrade from the previous stable version v10.3 to stable v10.4: 1. Stop rasdaman with ``sudo service rasdaman stop``; make sure that the processes are really stopped: if ``ps aux | grep -E 'ras(mgr|server)'`` returns any processes, stop them with ``pkill -9 -f 'ras(mgr|server)'`` 2. Update the repository metadata with ``sudo apt-get update`` 3. Two ways to upgrade rasdaman: - Upgrade all packages including rasdaman with ``sudo apt-get upgrade``, or - Upgrade only the rasdaman package with ``sudo apt-get install $(dpkg -l | grep "^ii *rasdaman" | awk '{ print $2; }')`` From testing ^^^^^^^^^^^^ To upgrade from the latest testing version to stable v10.4: 1. Stop rasdaman with ``sudo service rasdaman stop``; make sure that the processes are really stopped: if ``ps aux | grep -E 'ras(mgr|server)'`` returns any processes, stop them with ``pkill -9 -f 'ras(mgr|server)'`` 2. Remove the current rasdaman package with ``sudo apt-get remove $(dpkg -l | grep "rasdaman" | awk '{ print $2; }')``; this is required because the stable package generally has the same version but a lower iteration number than the testing one 3. Change the testing package repository to the stable one in ``/etc/apt/sources.list.d/rasdaman.list`` 4. Update the repository metadata with ``sudo apt-get update`` 5. Install the new rasdaman version with ``sudo apt-get install $(dpkg -l | grep "rasdaman" | awk '{ print $2; }')`` (:ref:`docs `) Migrating --------- For migrating from one to another OS version, see the :ref:`migration guide `. Incompatible changes -------------------- - Removed WMS layer blacklisting - this is now handled solely by blacklisting the corresponding coverage - WCPS UDFs need to be rebuilt with ``sudo -u rasdaman bash /opt/rasdaman/share/rasdaman/petascope/udf/build_udfs.sh`` - The new formula for translating geo to grid coordinates in petascope may result in small (maximum 1 pixel) shift in results of WCS / WCPS queries Patch releases -------------- Below fixes in rasdaman v10.4.X patch releases are listed. v10.4.10 (2025-03-04) ^^^^^^^^^^^^^^^^^^^^^ rasserver core - Reduce memory usage in the encode() function - Improve performance of streaming array results to the client wcst_import - Fixed issue with numpy array conversion to Decimal for netCDF recipe rasfed - Improved rasfed caches in rasmgr/rasserver with mqtt v10.4.9 (2025-03-01) ^^^^^^^^^^^^^^^^^^^^ rasserver core - Improved consistency of scale results in case of varying operand tiling schemes - Reduce requests to local rasfed by caching information for up to 5 minutes OGC frontend (petascope) - Optimize evaluation of WMS GetMap requests to generate more efficient rasql queries - Improved null error handling in rare case when updating a coverage and running WMS GetMap requests in parallel - Improved logging of rasql queries associated with OGC requests - Improved performance for irregular axis coefficients wcst_import - Added retrying for CRS parsing in wcst_import v10.4.8 (2025-02-19) ^^^^^^^^^^^^^^^^^^^^ rasserver core - Dropping a collection will automatically drop any triggers that reference it - Improved query execution errors with accurate line/column/token information - Fixed null value propagation in clip function - More efficient and accurate common-subexpression elimination in rasql queries - More accurate serialized format of floating-point null values OGC frontend (petascope) - Improved error handler when importing same coverage id in parallel - Improved connection handling when rasdaman is busy - Improved query result handling on exceptions after a rasql query has executed - Improved importing downscaled pyramid based on a virtual coverage - Improved logging when deleting coverages - Return correct range data types when encoding in ``gml`` or ``json`` of CIS 1.1 standard wcst_import - Added ``coverageId`` request parameter in ``InsertCoverage`` request for better logging in ``petascope.log`` v10.4.7 (2025-02-03) ^^^^^^^^^^^^^^^^^^^^ OGC frontend (petascope) - Fix performance regression in GetCapabilities on federated servers introduced in v10.4.4 v10.4.6 (2025-01-31) ^^^^^^^^^^^^^^^^^^^^ rasserver core - Do not print number type suffix for long values (l), e.g. in sdoms when listing a trigger OGC frontend (petascope) - Fixed issue with null remote coverages when processing ``WCS GetCapabilities`` - Improved performance for WMS ``GetMap`` request in case coverage has large local metadata v10.4.5 (2025-01-30) ^^^^^^^^^^^^^^^^^^^^ rasserver core - Add ``polygonize()`` function for converting raster arrays to vector (:ref:`docs `) - Triggers support testing if a sdom covers / intersects some or all of the areas of a particular collection accessed in a query (:ref:`docs `) OGC frontend (petascope) - Return correct headers for plain text WCPS results - WCPS ``polygonize`` function for converting a 2D coverage to a vector format (see :ref:`doc `) wcst_import - Reduced absolute file path in ``fileReferenceHistory`` metadata to just file name v10.4.4 (2025-01-23) ^^^^^^^^^^^^^^^^^^^^ OGC frontend (petascope) - Fixed incorrect values of ``sizeInBytesWithPyramidLevels`` results in WCS GetCapabilities responses - Fixed invalid grid domain generated for irregular axis nested subset - Improved virtual coverage performance with irregular axes - Derived geo XY resolutions from source coverage if omitted from ingredients file of a virtual coverage - Add support for creating a subset virtual coverage based on source coverages - Add support for creating a virtual coverage from another virtual coverage - Fixed some failed subsettings on a virtual coverage's with regular/irregular axes wcst_import - Add support for creating a subset virtual coverage based on source coverages - Throw error when metadata value of a property key is not a JSON string - Fixed issue with evaluating bands metadata as python function wcs-client - Remove trailling & character in shortened CRS in ``WSClient>Describe Coverage`` tab v10.4.3 (2025-12-30) ^^^^^^^^^^^^^^^^^^^^ OGC frontend (petascope) - Fixed coefficients issue of irregular axes when handling WMS ``GetMap`` requests over timeseries v10.4.2 (2024-12-21) ^^^^^^^^^^^^^^^^^^^^ OGC frontend (petascope) - Log unreadable coverages when logged in with admin user - Fixed slowness of WMS ``GetCapabilities`` result for federation - Fixed synchronization of virtual coverage with updates on source coverages - Fixed issue with escaped element tag name improperly in coverage's metadata - Fixed issue with duplicated elements in coverage's metadata rasdaman core - Fixed Python UDF issues on Ubuntu 24.04 - Fixed small discrepancy in results from color map application in AVX-512 optimized rasdaman v10.4.1 (2024-12-10) ^^^^^^^^^^^^^^^^^^^^ OGC frontend (petascope) - Fixed not found coverage issue with NC style format - Fixed minor deviances from the WMTS standard - Fixed ``Dimension``'s extent for regular axis reported in WMS ``GetCapabilities`` results - Improved caches for coverages and layers rasdaman core - Throw error instead of just logging a warning when a registered file fails to open/decode - Support for caching registered Sentinel-2 files from s3 on local filesystem rasdaman v10.3 (2024-03-13) =========================== New features, enhancements, bug fixes ------------------------------------- rasdaman core ^^^^^^^^^^^^^ - Support for Python UDFs (:ref:`docs `) - Support for ``shift_to`` rasql function (:ref:`docs `) - Support for ``overlay`` in general array condenser (:ref:`docs `) - Support for ascending / descending order of iteration in :ref:`CONDENSE ` - Code using raslib to send rasql queries to rasdaman can now check the :ref:`null status ` of a returned scalar ``r_Primitive`` value with the ``is_null()`` method - :ref:`Null status ` of scalar values is transmitted to the client, and printed as ``NULL`` by the rasql command-line tool - The rasql tool can read passwords from a ``~/.raspass`` file (:ref:`docs `) - Added railroad diagram of the rasql language grammar (:ref:`docs `) OGC frontend (petascope) ^^^^^^^^^^^^^^^^^^^^^^^^ - Areas of validity for temporal coefficients of irregular axes on newly imported coverages (:ref:`docs `) - Advanced calendar capabilities in WCS/WCPS (:ref:`docs `) - API to update the null values of a coverage (:ref:`docs `) - API to return the list of loaded WCPS UDFs (:ref:`docs `) - OGC API - Coverages endpoint ``/rasdaman/oapi`` with support for latest standard draft version (:ref:`docs `) - Add support for openEO at endpoint ``/rasdaman/openeo`` (:ref:`docs `) - Add support for OGC Geodatacubes API specification at ``/rasdaman/gdc`` (:ref:`docs `) - New setting ``crs_domain`` to configure the domain for CRS URLs in WCS responses (:ref:`docs `) - Move several fixed settings of Spring framework from ``petascope.properties`` to ``application.properties`` (internal to rasdaman.war) - Do not add implicit nodata values to encode; may require adding ``null values [..]`` clause to WMS style queries - In WCPS scalar results which are :ref:`null values ` are now returned as ``NULL`` (or ``{ NULL, ... }`` for composite values) - Added railroad diagram of the WCPS language grammar (:ref:`docs `) - Metadata elements under ``covMetadata`` in the WCS DescribeCoverage response will have a rasdaman namespace with a ``ras:`` prefix by default (unless a namespace was set during data import) wcst_import ^^^^^^^^^^^ - if ``"tiling"`` is not specified in the ingredients file (:ref:`docs `), it will be automatically derived - an ``--analyze`` option when invoking wcst_import.sh has similar effect as ``"mock": true`` in the ingredients (:ref:`docs `) - ``"skip": "files_that_fail_to_open"`` to skip files which cannot analyze by wcst_import (:ref:`docs `) rasfed ^^^^^^ - New rasfed settings ``readFromOutpeerTimeoutMs`` and ``writeToOutpeerTimeoutMs`` allowing to configure the timeout to read / write from / to an outpeer node (:ref:`docs `) installation ^^^^^^^^^^^^ - Packages optimized for specific CPU architectures are available: ``rasdaman`` (SSE 4.1), ``rasdaman-avx`` (AVX), ``rasdaman-avx2`` (AVX2), ``rasdaman-avx512`` (AVX-512); to see which features are supported by your CPU, run ``grep flags /proc/cpuinfo | head -n1 | grep -o -E '(sse|avx)[^ ]*'`` (:ref:`docs `) - Packages for Ubuntu 24.04 Upgrading --------- The sections below contain instructions on how to upgrade the software installation from a previous version to stable rasdaman v10.3. From v10.2 ^^^^^^^^^^ To upgrade from the previous stable version v10.2 to stable v10.3: 1. Stop rasdaman with ``sudo service rasdaman stop``; make sure that the processes are really stopped: if ``ps aux | grep -E 'ras(mgr|server)'`` returns any processes, stop them with ``pkill -9 -f 'ras(mgr|server)'`` 2. Update the repository metadata with ``sudo apt-get update`` 3. Two ways to upgrade rasdaman: - Upgrade all packages including rasdaman with ``sudo apt-get upgrade``, or - Upgrade only the rasdaman package with ``sudo apt-get install $(dpkg -l | grep "^ii *rasdaman" | awk '{ print $2; }')`` From testing ^^^^^^^^^^^^ To upgrade from the latest testing version to stable v10.3: 1. Stop rasdaman with ``sudo service rasdaman stop``; make sure that the processes are really stopped: if ``ps aux | grep -E 'ras(mgr|server)'`` returns any processes, stop them with ``pkill -9 -f 'ras(mgr|server)'`` 2. Remove the current rasdaman package with ``sudo apt-get remove rasdaman``; this is required because the stable package generally has the same version but a lower iteration number than the testing one 3. Change the testing package repository to the stable one in ``/etc/apt/sources.list.d/rasdaman.list`` 4. Update the repository metadata with ``sudo apt-get update`` 5. Install the new rasdaman version with ``sudo apt-get install $(dpkg -l | grep "rasdaman" | awk '{ print $2; }')`` (:ref:`docs `) Migrating --------- For migrating from one to another OS version, see the :ref:`migration guide `. Incompatible changes -------------------- If a query returns a scalar value that is null in rasdaman, then rasj will now return a ``null`` object. Hence, Java code using rasj to send rasql queries to rasdaman should check if returned scalar objects are ``null``. Patch releases -------------- Below fixes in rasdaman v10.3.X patch releases are listed. v10.3.16 (2024-xx-xx) ^^^^^^^^^^^^^^^^^^^^^ OGC frontend (petascope) - Improved ``GetCapabilities`` performance for federation. - If an outpeer is stopped, then throw coverage not found instead of loading the object from petascope's cache - OAPI added support for ``cube:dimensions`` and ``summaries`` properties when describing a collection - Fixed issue with curtain clipping returning invalid grid extents - Improved initalizing time for WMTS ``TimeMatrixSet`` when petascope starts - Fixed issue in pyramid member coverage's axis extent without propagated grid extents from coverage's index axes - Fixed issue when WCPS UDF contains a wrong package name - Fixed out of geo extents issue for WMS ``GetMap`` request with a style containing another federated virtual coverage v10.3.15 (2024-09-18) ^^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fixed merging of nested subsets in an marray cell expression - Fixed evaluation of ``shift_to`` in certain cases - Fixed revoking an invalid role which is not granted to a user OGC frontend (petascope) - Fixed issue with importing files with data type ``Int8`` for gdal v.3.7+ in petascope - Fixed issue with incorrect reloading tables / dropdowns in Web Admin access control - Fixed issue with null error when slicing in all axes of a virtual coverage - Fixed issue with null value when deserializing ``RangeType`` from federated serialized basic coverages wcst_import - Support ``OGC/0/Temporal`` CRS v10.3.14 (2024-08-30) ^^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fixed evaluation of nested subsets with iterator references in an marray/condense - Fixed listing of collections with access disabled by a trigger - Fixed transmission of scalar result null status in federation remote subqueries OGC frontend (petascope) - Fixed issue with null error in case a federated coverage has a WCPS fragment style containing an unqualified layer name - Fixed issue with WMS subset in case pyramid's lower bound is smaller than base coverage's lower bound - Fixed issue in federation when a range label has spaces v10.3.13 (2024-08-16) ^^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fixed band selection on clip with coordinates OGC frontend (petascope) - Added retry in case CRS resolver fails to respond wcst_import - Fixed potential crash when applying too many data expressions during netcdf data import v10.3.12 (2024-08-04) ^^^^^^^^^^^^^^^^^^^^^ rasdaman core - More robust reading of rasfed properties during rasdaman startup - Throw a more descriptive error when updating a non-insitu ingested tile with an insitu one - Throw error instead of crash when insitu decoded file has different base type from the collection type - Properly update MDD type in ALTER COLLECTION statements OGC frontend (petascope) - Fixed issue with displaying WMS layer as blacklisted but only the associated coverage is blacklisted v10.3.11 (2024-07-25) ^^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fixed null value propagation when extending an array - Fixed issue introduced in v10.3.10 in queries with array joins wsclient - Added error message handler in login form v10.3.10 (2024-07-18) ^^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fixed join of non-matching tiles in induced condenser - Fixed splitting of marray constructor in intra-query parallelization wsclient - Fixed issue with cached logged in user caused WebWorldWind could not load properly wcst_import - Fixed issue with parsing datetime literal in ``areasOfValidity`` v10.3.9 (2024-07-09) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fixed join of arrays with non-matching tilings in an marray constructor - Fixed selecting a point withing array sdom but not touching any physical tile should return a NULL OGC frontend (petascope) - Improved coverage's metadata in XML handler - Added API to update a regular axis' origin (:ref:`docs `) wsclient - Fixed issue with loading main app when no authentication is enabled in ``petascope.properties`` documentation - Add documentation on common access-control patterns (:ref:`docs `) v10.3.8 (2024-06-24) ^^^^^^^^^^^^^^^^^^^^ OGC frontend (petascope) - Improved loading time for large areas of validity coefficients of an irregular axis - Show rasdaman rasj stacktraces in petascope.log when ``full_stacktraces=false`` - Improved null checks in petascope for invalid ``request/service/version`` parameters and WMS style name - Supported WCPS UDF names with *snake_case* documentation - Improved documentation of rasdaman-specific metadata in DescribeCoverage responses (:ref:`docs `) v10.3.7 (2024-06-17) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fixed slow evaluation of certain types of federated queries - Make rasfed startup more robust - Increased default federation peer connection timeout from 3 to 10 seconds - Suppress harmless connection warnings in rasfed.log OGC frontend (petascope) - Fixed coverage's metadata with nested ``ras:covMetadata`` elements issue v10.3.6 (2024-06-05) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - New configuration option in rasmgr.conf to set limit on amount of memory rasdaman can use for evaluating queries (:ref:`docs `) - Default memory limit in rasdaman is set to 1 GB less than available system memory as reported by /proc/meminfo wcst_import - Fixed issue with ``default_null_values`` is an empty array v10.3.5 (2024-05-31) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fixed issue with restarting rasserver processes in case of a crash - More robust handling of cached data - Fixed accuracy of floating-point values in federated subqueries OGC frontend (petascope) - Improved coverage data models internally - Fixed issue with requesting non geo-referenced dimensions which are already defined in a WMS style - Fixed WMTS to show the tile matrix set name properly - Fixed an issue with WMS BGCOLOR wcst_import - Fix creating multiband null values in the generated GML file documentation - Added section for the structure of rasdaman-specific metadata in DescribeCoverage responses (:ref:`docs `) v10.3.4 (2024-05-07) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fixed issue with shutdown in case of server crash OGC frontend (petascope) - Fixed issue with WMS on virtual layers in corner cases when the layer native CRS is different than EPSG:4326 - Add API for converting an irregular axis to regular axis (:ref:`docs `) - Add API support for updating range type of a coverage (:ref:`docs `) wcst_import - Add ``label`` setting in ``general_coverage`` recipe to specify a band's label wsclient - Fixed issue with WMS timeslider for regular time axis in ``UnixTime`` CRS v10.3.3 (2024-04-22) ^^^^^^^^^^^^^^^^^^^^ wcst_import - Do not send request to non-existing IndexCRS unit of measurement URL - Implicitly if possible try to convert ``min/max`` values of a temporal axis to ISO datetime for ``general_recipe`` OGC frontend (petascope) - Improve WCS / WMS GetCapabilities response time for federated objects by cache wsclient - Improve sliders for DescribeLayer tab when a layer has a lot of timeslices v10.3.2 (2024-04-10) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - ``mosaic`` function for mosaicing multiple arrays into one (:ref:`docs `) - Support for specifying multiples of bytes with kB, MB, or GB suffix (:ref:`docs `) - Clipping linestring / polygon that extends outside the MDD spatial domain will return the full clip domain instead of just the intersection with the MDD spatial domain - Bug fixes and improvements in the rasdaman cache OGC frontend (petascope) - Do not add ``colorPalette`` from coverage's global metadata in rasql ``encode()`` if ``colorMap`` exists as extra metadata - Support adding sibling customized metadadata besides rasdaman's metadata in coverage's metadata general - Improvements in stability and robustness rasfed - Added rasmgr's port and rasdaman version in the output of ``active_outpeers`` message request v10.3.1 (2024-03-22) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Add support for listing UDFs with parameters and result type in human-readable as well as JSON format (:ref:`docs `) - Fix performance of marray expressions in edge case with multiple interval iterators and array-valued cell expression - Fix quota evaluation in edge case when all quota is exhausted but the current query does not require a specific resource at all OGC frontend (petascope) - Set default CRS endpoint ``https://www.opengis.net`` to return in ``WCS DescribeCoverage`` results - Support spatial geo XY axis labels in ``subsettingCRS`` of target resolutions / domains expression in WCPS ``crsTransform()`` - Filter remote coverages in ``GetCapabilities`` results by requesting rasdaman user properly - Fix WCS ``GetCapabilities`` to respond request ``sections`` parameter properly - Add support in WCS and WCPS for subsetting by axis labels specified in the ``subsettingCRS`` - Fix updating areas of validity properly for an irregular with direct positions specified in the ingredients file installation - Add libgrpc as dependency to the rasdaman Debian packages rasdaman v10.2 (2023-03-15) =========================== New features, enhancements, bug fixes ------------------------------------- rasdaman core ^^^^^^^^^^^^^ - Add support for monthly and per-query quotas (:ref:`docs `) - Add support for collecting query cost metrics to be used for billing purposes (:ref:`docs `) - Add support for using PostgreSQL as a backend, as an alternative to the default SQLite backend (:ref:`docs `) - Add support for --queryfile and --out formatted options in rasql - Multiplication with bool (e.g. masks) preserves the type of the non-bool operand, avoiding unnecessary type inflation (:ref:`docs `) - Flexible serialization of multi-band tiles to either pixel or channel-interleaved representation - Improve scalability when handling many clients concurrently OGC frontend (petascope) ^^^^^^^^^^^^^^^^^^^^^^^^ - Support billing features with web APIs - Support creating a downscaled coverage of a virtual coverage - WCPS supports non-standard scale by factors (:ref:`docs `) - WCPS supports axis iterators in coverage constructor with geo extents from domain() operator (as well as .lo and .hi) - WCPS crsTransform supports target geo XY resolution and geo XY bounding box extra parameters. - WCPS supports domain($coverageExpression, axisLabel).resolution to get the geo resolution of an axis - WCPS fixed parsing of WHERE clause when LET is also present in a query - Support logging level for rasj in petascope.properties (:ref:`docs `) - Enhanced serialization / deserialization for fetching coverages / layers objects from peers - Fixed creating a local pyramid member when there is a remote pyramid member with the same name - Fixed to remove extra spaces from the petascope.log path in the default petascope.properties federation ^^^^^^^^^^ - Enhance caches in petascope to collect remote objects for GetCapabilities results - Support RASBASE running on postgresql (:ref:`docs `) wcst_import ^^^^^^^^^^^ - Support alternative CRS shorthand notation (:ref:`docs `) - Support relative file path when importing netCDF/HDF4/HDF5 files via gdal recipe - Optimized import of Sentinel 2 data when possible (:ref:`docs `) - Fixed import of non-globbed files in subdirectories - Fixed invocation with ingredients file with whitespace in the file path documentation ^^^^^^^^^^^^^ - Expand section about migrating from one OS version to another with specific steps for Ubuntu 18.04 to 20.04, and Ubuntu 20.04 to 22.04 (:ref:`docs `) - Add section about ows4R package to access OGC WCS via R (:ref:`docs `) installation ^^^^^^^^^^^^ - Drop support for CentOS 7 and Ubuntu 18.04 packages as these OS are close to EOL - Add feature to run an optional custom check script in the watch_rasdaman.sh script (:ref:`docs `) - Support JAVA_OPTS environment variable in migrate_petascopedb.sh Upgrading --------- The sections below contain instructions on how to upgrade the software installation from a previous version to stable rasdaman v10.2. From v10.1 ^^^^^^^^^^ To upgrade from the previous stable version v10.1 to stable v10.2: 1. Stop rasdaman with ``sudo service rasdaman stop``; make sure that the processes are really stopped: if ``ps aux | grep -E 'ras(mgr|server)'`` returns any processes, stop them with ``pkill -9 -f 'ras(mgr|server)'`` 2. Update the repository metadata with ``sudo apt-get update`` 3. Install the new rasdaman version with ``sudo apt-get install rasdaman`` From testing ^^^^^^^^^^^^ To upgrade from the latest testing version to stable v10.2: 1. Stop rasdaman with ``sudo service rasdaman stop``; make sure that the processes are really stopped: if ``ps aux | grep -E 'ras(mgr|server)'`` returns any processes, stop them with ``pkill -9 -f 'ras(mgr|server)'`` 2. Remove the current rasdaman package with ``sudo apt-get remove rasdaman``; this is required because the stable package generally has the same version but a lower iteration number than the testing one 3. Change the testing package repository to the stable one in ``/etc/apt/sources.list.d/rasdaman.list`` (Ubuntu) or ``/etc/yum.repos.d/rasdaman.repo`` (CentOS 7) 4. Update the repository metadata with ``sudo apt-get update`` 5. Install the new rasdaman version with ``sudo apt-get install rasdaman`` Migrating --------- For migrating from one to another OS version, see the :ref:`migration guide `. Incompatible changes -------------------- - Ubuntu 18.04 and CentOS 7 are not supported anymore, rasdaman v10.2 can be installed only on Ubuntu 20.04 and 22.04 - The server/client protocol has backwards-incompatible changes: - C++ / Java clients must be recompiled with the latest rasdaman client API libraries to be able to communicate with rasdaman v10.2 servers - In federations, all rasdaman instances must be upgraded to the same rasdaman v10.2 - C++ UDF libraries must be recompiled against the rasdaman v10.2 libraries in /opt/rasdaman/lib after upgrading Patch releases -------------- Below fixes in rasdaman v10.2.X patch releases are listed. v10.2.15 (2024-01-12) ^^^^^^^^^^^^^^^^^^^^^ rasdaman core - Initialize extended areas in extend() with null values - Fix overlay of operands with different tilings OGC frontend (petascope) - Drop rasdaman collection in case of failed to insert first null values when creating a new coverage - Fix issue with WMS layers not shown in WMS GetCapabilities in case of duplicated layer names - Improve WCPS subsets by pushing down outer subsets to inner subsets if possible v10.2.14 (2023-12-08) ^^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fix CONCAT to automatically shift operand arrays to the origin of the first array - Fix PROJECT to the same CRS as the source CRS - Fix federated queries to virtual coverages - Fix propagation of null values through cast operations when the null values are still in range of the new type - Fix subsetting over array-valued MARRAY operations OGC frontend (petascope) - Support ``--`` as separators in federated qualified coverage id - Added billing quota management and users queries metrics view in web admin pages wcst_import - Support ``codeSpace`` for ``"observationType": "categorial"`` in ``general_recipe`` v10.2.13 (2023-11-30) ^^^^^^^^^^^^^^^^^^^^^ rasdaman core - Improve performance of ``list collections sizes`` queries - Fix parsing of multiband nullsets from collections on federated nodes OGC frontend (petascope) - Extra local metadata of updated coverage's metadata is serialized properly in GML - Show more accurate coverage size in bytes in ``GetCapabilities`` results - Add new INSPIRE setting ``inspire_dls_spatial_dataset_identifier`` in ``petascope.properties`` - Support ``swe:Category`` and SWE ``definition`` attribute - Add billing management web admin page - Adjusted GML responses from WCS 2.1.0 ``GetCapabilities``, ``DescribeCoverage`` and ``GetCoverage`` requests wsclient - Fixed issue with sending ``outputType=GeneralGridCoverage`` parameter for non-GML format in WCS ``GetCoverage`` tab - Added option to select WCS 2.0.1 result from ``GetCapabilities`` tab (default it is WCS 2.1.0) wcst_import - [RE] Add ``nilValues`` setting to support importing band with multiple null values - Add ``definition`` attribute in a band's specification - Add ``observationType`` setting to set the type of a band to show in GML v10.2.12 (2023-11-21) ^^^^^^^^^^^^^^^^^^^^^ rasdaman core - Add support for reporting collection sizes with a ``list collections sizes`` query - Improve performance of dbinfo() for large arrays rasfed - Local rasfed sends request to ask for status message from inpeer nodes OGC frontend (petascope) - Add ``rasdaman/admin/version`` endpoint to return rasdaman's version - If authentication is not enabled, petascope still requires basic authentication with privileged user's credentials for admin requests - Improve band subsetting in one-band coverage - Improve WMS GetMap request in case of mismatching coefficients between base and pyramid members - Using source coverage's collection name properly when inserting a new virtual coverage wsclient - Added option to select coverage type in WCS ``DescribeCoverage`` / ``GetCoverage`` tabs (default it is CIS 1.1) v10.2.11 (2023-10-23) ^^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fix CONCAT of induced condenser operands - Throw an error when a composite value with a single band is created OGC frontend (petascope) - Improve WMS GetMap response results when scaling small grid domains to target width and height - Virtual coverage uses first source coverage metadata as its metadata in case no metadata is set when inserting the virtual coverage - Create a new pyramid member should use the previous pyramid member if it exists in case of scale vector is equal for non-XY axis secore - Return ``text/xml`` by default and ``application/gml+xml`` format if request header is ``Accept: application/gml+xml`` wcst_import - Faster import of Sentinel-2 data from S3 storage (:ref:`docs `) - wcst_import only logs to terminal console, instead of logging to log file v10.2.10 (2023-09-22) ^^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fix estimating result size for quota evaluation to be more accurate when encode has a colorMap - Improve logged error on quota violation - Change default RASSTATS location on first install to /opt/rasdaman/data/rasstats/RASSTATS - Allow creating RASSTATS even if RASBASE already exists OGC frontend (petascope) - WCPS supports binary induced function ``atan2 / arctan2`` (:ref:`docs `) - WCS/WCPS allows ``subsetting`` / ``crsTransform()`` by ``OGC:CRS84`` CRS - Document external Tomcat security configuration for billing API (:ref:`docs `) - Fix issue with missing sqlite JDBC driver for billing API - WMS fixed slicing on regular time axis to return proper grid index - Throw detailed error when accessing embedded SECORE which is not enabled in ``petascope.properties`` - Validate ``rasdaman_user`` and ``rasdaman_pass`` settings if non-empty at startup wsclient - Fix sometimes wsclient does not show the login page at loading page - Do not require double logins for admin functions wcst_import - wcst_import works with https SECORE URL configured in ``petascope.properties`` v10.2.9 (2023-09-07) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Add support for binary induced function ``arctan2`` - The ``pow`` / ``power`` function supports exponent of any type (not just floating-point) - Fix unfair scheduling in rasmgr OGC frontend (petascope) - Add usernames as a new criterion on statistic page of rasdaman web admin tools - Fix WMS ``GetMap`` request with WCPS fragment style containing pre-defined axis slicings - Fix coverage's WGS84 bounding box to return in ``WCS GetCapabilities`` response - Fix wrong collection alias in generated rasql FROM clause in case of scaling a pyramid member with different collection name to coverage id - Fix coverage's metadata returned in XML format for WCS ``DescribeCoverage`` request - Add check for invalid non-XY subsets which are out of extents in WMS ``GetMap`` requests - SECORE resolves CRS defined in userdb with full XQuery query - Improve rasdaman's collection type creation with band names - WCS / WCPS supports CRS projection with shorthand style format v10.2.8 (2023-08-09) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - dbinfo output contains the null values if any were specified for the collection - Fix evaluation of federated queries containing UDF operations OGC frontend (petascope) - WMS ``GetMap`` filters null values which are out of range values ``[0-255]`` for encoding in PNG - Fix WCPS UDFs not reloaded in case of jar files rebuilt - WCPS fixed missing collection iterators of some source collections in rasql ``FROM`` clause - WCPS fixed ``scale() / extend()`` operators with target domains specified from ``LET`` clause variable - WCPS fixed ``OVERLAY`` behavior with ``b`` is on top of ``a`` for ``a OVERLAY b`` - WCPS UDF signature supports non-argument wcst_import - Fixed parsing errors for per-band null values in ``default_null_values`` setting in the ingredients file wsclient - Allow admin to overwrite metadata when the current metadata is invalid XML v10.2.7 (2023-07-23) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fix evaluation of nested CONDENSE with a WHERE clause referencing coordinates of parent MARRAY OGC frontend (petascope) - Fix null error of WCPS subsets on an empty area of a virtual coverage - Fix WMS ``GetCapabilities`` to conform with OGC 1.3.0 schema - Support ``BGColor`` optional parameter in WMS ``GetMap`` request for requesting layer with 1, 3 or 4 bands - WMS ``GetMap`` without ``TRANSPARENT=TRUE`` return white color for nodata pixels instead of transparency - Fix problem with WMS ``GetMap`` request on multiple layers with different geo extents and resolutions - WMS GetMap request support ``crs=CRS:84`` - [RE] Add a warning message when updating the admin user configured in petascope.properties via petascope - Strip ``random`` parameter from incoming requests to bypass web browser's cache - Update ANTLR4 library for WCPS to the latest version to support java 11+ - Enhance WCS scaling extension via WCPS query - Remove unused collection alias in generated rasql queries from WCPS queries WSClient - Fix WMS ``GetCapabilities`` to conform with OGC 1.3.0 schema v10.2.6 (2023-06-20) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fix evaluation of federated queries when a remote coverage has multiple nullsets - Fix evaluation of array-valued array constructor in edge cases - Fix evaluation of scale operator in edge cases OGC frontend (petascope) - Fix WMS results in case of different geo extents accross base and its pyramid members - Dimension elements must contain a units attribute in WMS GetCapabilities response - Internal SECORE shows the context path based on petascope endpoint in results - Fix null error in case when crsDefinition is not available in WCPS - Auto reload WCPS UDFs when UDF jars files changed / removed - Fixed WCPS to return multipart responses properly - Improve pyramid member selection when requesting a non-existing coefficient on coverage axis - More robust handling of parallel tasks in federated services - Improve optimization of scaling and subsetting operations in WCPS queries - Improve performance of GetCapabilities requests wcst_import - Fix time_series_regular recipe to work with UnixTime CRS SECORE v10.2.5 (2023-05-19) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fix bug in scale operator evaluation in certain edge cases OGC frontend (petascope) - Fix incorrect results for WMS ``GetMap`` on YX grid orders layer - Support ``XY`` axes order with ``NorthEast`` orientation (e.g. ``EPSG:31467``) wsclient - Show ``WCS/WMS GET`` requests on the GUI v10.2.4 (2023-05-05) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Improved performance of scaling 2D arrays OGC frontend (petascope) - Gracefully handle when a coverage type does not exist in rasdaman - Fixed petascope deployment with H2 database backend - Sort pyramid members by scale factor when creating a new pyramid member - Improved performance when processing WCS ``GetCapabilities`` requests - Fixed shifting error in irregular axis when doing subsettings - Fixed null error when creating pyramid member of a renamed pyramid member coverage - Fixed error when renaming a pyramid member of a base coverage - Enhanced authentication checking in wsclient on petascope startup - Fixed problem with WMS ``GetMap`` on coverages with ``NaN`` null values - Enhanceed accuracy for WMS GetMap subsets on lower resolution layers wsclient - Display shorter federated coverage Ids and layer names on ``GetCapabilities`` tabs with tooltips - Recalculate the total coverages/layers and their sizes when filtering on tables in ``GetCapabilities`` tabs - Add tab in ``DescribeLayer`` WMS tab to allow to add an existing geo-referenced coverage as a pyramid member of the selected layer - Add ``CreateLayer`` tab to create a WMS layer from an existing geo-referenced coverage - Enhanced performance after deleting a coverage / layer and creating / deleting a style of a WMS layer - Added ``DeleteLayer`` tab to remove a WMS layer - Fixed error to display footprints on ``WebWorldWind`` in both WCS and WMS ``GetCapabilities`` tabs - Added ``Login`` button in case ``authentication_type=basic_header`` and ``rasdaman_user=some_user`` are set in ``petascope.properties`` - Display error when petascope is not loadable when wsclient starts - Fixed ``GetCoverage`` button error in case petascope endpoint is not ``/rasdaman/ows`` v10.2.3 (2023-04-19) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Improve performance in list collections / GetCapabilities queries in large federations OGC frontend (petascope) - Support java 17 - Enhance resolving UoM CRS when running internal SECORE - Fixed internal SECORE failed to start when petascope starts - Support internal SECORE for different web application name instead of rasdaman.war - Improved time to create WMTS layers when petascope starts CRS resolver (SECORE) - Support java 17 wcst_import - Add validation to check that ``"skip":true`` if ``"execute_if":"import_failed"`` is set v10.2.2 (2023-03-29) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fixed performance regression in list collections queries with federated peers - Improved performance of starting/stopping rasdaman - Fixed signal handlers to be async-signal-safe OGC frontend (petascope) - Fixed to not initialize embedded CRS resolver if internal is not set in secore_urls - Fixed error parsing when rasfed is enabled and no outpeer is online v10.2.1 (2023-03-24) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Add support for ceil, floor, and round unary induced functions (:ref:`docs `) - Fixes on client and server handling in rasmgr OGC frontend (petascope) - Reduce time to load WMTS GetCapabilities - Fixed issue to parse version for federated WMS layers from peer nodes - Support round, ceil and floor operations in WCPS - Enhance selection for working resolvers to request CRSs - Reduce requests to SECORE when building coverage objects - Support ASCII printable characters for creating user password via user management page - Fixed parsing version for federated WMS layers from peer nodes wcst_import - Support execute_if setting to control when an after_import hook is executed (:ref:`docs `) rasdaman v10.1 (2022-10-21) =========================== High-level summary ------------------ - Rasdaman now provides OGC WMTS support out of the box, in addition to the long present implementations of OGC WCS, WCPS, and WMS. - On a lower level, WCPS and rasql support sorting array slices along a given axis, as well as reversing the order of slices to e.g. flip an image along an axis. - Query evaluation is continuously improved to be more efficient, e.g. WCS / WCPS scale operations will now automatically use a lower-resolution pyramid coverage if one exists. - Last but not least, this version brings improvements wrt. user-friendliness as well. Data import is simpler to configure as some complex settings are now automatically derived, more ergonomic shorthand functions have been added in WCPS, etc. New features, enhancements, bug fixes ------------------------------------- rasdaman core ^^^^^^^^^^^^^ - Support for sorting array slices along an axis by an aggregation expression (:ref:`docs `) - Support for flipping the order of array slices along an axis (:ref:`docs `) - Initialize empty areas in subsetting operations with null values - Fix evaluation of overlay operation on arrays with null values OGC frontend (petascope) ^^^^^^^^^^^^^^^^^^^^^^^^ - WMTS (OGC Web Map Tile Service) support added (:ref:`docs `) - WMTS passes OGC CITE tests - WMS passes OGC CITE WMS raster conformance tests - WMS fixes invalid XML element names in GetCapabilities - WMS supports a non-standard random parameter to bypass Web browser cache (:ref:`docs `) - WCPS supports sort operator (:ref:`docs `) - WCPS supports flip operator (:ref:`docs `) - WCPS supports imageCrsdomain as trimming subset in scale operator - WCPS fixed combination of different grid domains in coverage condense - WCPS ``LET`` clause supports WKT expressions - WMS query fragment styles support combining coverages with mismatching irregular axes - Optimize WCPS queries with scale and subset operators to use pyramids if applicable - WCPS supports crsTransform() shorthand operator (:ref:`docs `) - Support importing local files to external endpoint (:ref:`docs `) - Fix WMS wrong results with rasql / wcps fragments style on virtual coverages - Fix scaling on sliced virtual coverages by non-XY axes - Optimize processing WCPS requests with multiple binary expressions - Support WMS GetMap requests with non XY axis labels as request parameters - Fix null error when parsing compound CRS - Fix WMS style with WCPS query fragment with fixed subset domains wcst_import ^^^^^^^^^^^ - Option import_order supports value "none" to import files without sorting them beforehand - Add timeout for analyzing input files - If default_null_values is set to [], then a coverage without null values is created - Add setting filterMessagesMatching to filter unwanted GRIB messages - Automate setting gridOrder in ingredients (:ref:`docs `) - Support ${bbox} expression used in after_import hook (:ref:`docs `) - Support importing local files to external endpoint (:ref:`docs `) Upgrading --------- The sections below contain instructions on how to upgrade the software installation from a previous version to stable rasdaman v10.1. From v10.0 ^^^^^^^^^^ To upgrade from the previous stable version v10.0 to stable v10.1: 1. Stop rasdaman with ``sudo service rasdaman stop``; make sure that the processes are really stopped: if ``ps aux | grep -E 'ras(mgr|server)'`` returns any processes, stop them with ``pkill -9 -f 'ras(mgr|server)'`` 2. On Ubuntu update the repository metadata with ``sudo apt-get update`` 3. Install the new rasdaman version with ``sudo apt-get install rasdaman`` (Ubuntu) or ``sudo yum update rasdaman`` (CentOS 7) From testing ^^^^^^^^^^^^ To upgrade from the latest testing version to stable v10.1: 1. Stop rasdaman with ``sudo service rasdaman stop``; make sure that the processes are really stopped: if ``ps aux | grep -E 'ras(mgr|server)'`` returns any processes, stop them with ``pkill -9 -f 'ras(mgr|server)'`` 2. Remove the current rasdaman package with ``sudo apt-get remove rasdaman`` (Ubuntu) or ``sudo yum erase rasdaman`` (CentOS 7); this is required because the stable package generally has the same version but a lower iteration number than the testing one 3. Change the testing package repository to the stable one in ``/etc/apt/sources.list.d/rasdaman.list`` (Ubuntu) or ``/etc/yum.repos.d/rasdaman.repo`` (CentOS 7) 4. On Ubuntu update the repository metadata with ``sudo apt-get update`` 5. Install the new rasdaman version with ``sudo apt-get install rasdaman`` (Ubuntu) or ``sudo yum update rasdaman`` (CentOS 7) Patch releases -------------- Below fixes in rasdaman v10.1.X patch releases are listed. v10.1.4 (2023-02-02) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - rasmgr queues client connections to increase the number of concurrent clients that rasdaman can handle OGC frontend (petascope) - Improve error reporting when rasdaman crashes - Create proper temporary collection types and delete them after a WCPS query with decode() finished - Log warning message when petascope failed to close a connection to rasdaman - WCPS fixed handling of non-numeric bounds on irregular axis subsets v10.1.3 (2023-01-05) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Updating a UDF library in the rasdaman UDFs directory does not require rasdaman restart - Support specifying variables as an array when encoding to NetCDF (:ref:`docs `) - Improved error reporting with more details - Improved optimization of subseting operations - Fixed evaluation of join of empty collections OGC frontend (petascope) - WCPS fixed handling of reduce expression on a virtual coverage without subsets - WMS fixed handling of WCPS query fragments on a layer with pyramids - WCPS / WMS improved performance for irregular axis with long list of BigDecimal values - WCPS fixed the grid origin of XY axes after crsTransform() - Support creating pyramid members from a virtual base coverage - WCPS fixed encoding to netcdf of dynamically created multiband coverage - Axis labels specified in an axis iterator are incorporated in the resulting coverage - Fixed importing with regular time axis - Improve performance on coverages with very large irregular axes - WCPS fixed parsing of unary minus expressions - Encoding to netCDF preserves variable order wcst_import - virtual_coverage recipe supports scale_factors / scale_levels settings v10.1.2 (2022-11-24) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fixed problem in UDF evaluation with non-char array results - Fixed problem with evaluating induced condensers with multidimensional iterators OGC frontend (petascope) - WCPS supports cellCount() to get the total number of grid pixels of a coverage expression - WCPS supports sum() as an alias of add() operator - WCPS fixes evaluation of coverage constructor with coverage-resultuing values expression - WCS fixes authorization for WCS GetCoverage requests - WMS fixes evaluation of query fragment styles with predefined non-XY slices wcst_import - Fix checking if an axis is UnixTime CRS properly - ``blocking: false`` should show the imported files count / total files properly federation - Exit rasfed when password for rasdamanUser in rasfed.properties is invalid v10.1.1 (2022-11-04) ^^^^^^^^^^^^^^^^^^^^ rasdaman core OGC frontend (petascope) - WMS fixes evaluation of query fragment styles with non-XY slices - WCPS fixes scaling with subsets involving LET clause variables - WCPS supports single and multiline comments (:ref:`docs `) - Supports shorthand interpolation method values in WCS GetCoverage requests (:ref:`docs `) wcst_import - Enhance error handling to save error stacktrace to a log file rasdaman v10.0 (2022-03-18) =========================== High-level summary ------------------ - Rasdaman v10.0 comes with a new query processing engine bringing higher performance on modern multi-core architectures, reduced memory usage, support for fine-grain access control through privileges and triggers, more correct nodata handling with null masks, and more. - Virtual coverages allow building a single coverage from multiple source coverages with potentially different CRS or resolution; for example, it is possible to combine Sentinel 2 coverages over varying UTM zones into a single coverage with global CRS like EPSG:4326, such that the necessary reprojections, scaling and overlaying are done on-the-fly in the background. - Access can be restricted on complete datacubes, but also on spatio-temporal regions within datacubes. Access control must allow flexible definition as well as efficient enforcement on individual or group of users. Further, resource usage often needs to be restricted on a per-user and per-query basis. Rasdaman now allows to do this through a convenient web interface. - Rasdaman federations support flexible access control configured by mapping users between federated nodes. - In-situ data registration has been enhanced to support spatially overlapping files with the same semantics as non-insitu updates, so that the last registered files overlays previously registered files, but not in the areas with null values. - Type coercion rules have been updated and standardized for less surprising behavior in query processing, to minimize the risk for overflow as well as type inflation. Casting from larger to smaller type has also been improved to "clamp" the values outside of the valid range of the new smaller type. New features, enhancements, bug fixes ------------------------------------- rasdaman core ^^^^^^^^^^^^^ - Null values have a different and more accurate semantics based on null masks, additional null-specific operators, support for per-band null values, improved handling of null when encoding data, e.g. use of "null" keyword in JSON (:ref:`docs `) - Access control is now part of rasql and much more powerful and flexible in capabilities (:ref:`docs `); existing users are automatically migrated and the access control mechanism in rasmgr is not used anymore - Insitu registration of overlapping files now matches the semantics of regular, non-insitu updates (:ref:`docs `) - Encoding of data to JSON or CSV format is now more flexible with support for controlling various elements of the output format (:ref:`docs `) - Support for marray expression with array-valued cell expression, allowing to aggregate array expressions into higher-dimensional arrays (:ref:`docs `) - Updated and formally standardized type coercion rules for less surprising behavior in query processing; they have been designed to minimize the risk for overflow as well as type inflation (:ref:`docs `) - Type management is now fully possible with rasql queries (:ref:`docs `); the deprecated tool rasdl has been removed - Axis names specified during array type creation can be used for flexible positionally-independent subsetting (:ref:`docs `) - Types complex and complexd are deprecated, use cfloat32 and cfloat64 instead (:ref:`docs `) - Casting from larger to smaller type will lead to "clamping" of values outside of the valid range of the new smaller type (:ref:`docs `) - New query syntax to list the collections available in rasdaman; local and all remote collections are listed by default, and this can be controlled by specifying a particular host (:ref:`docs `) - The *dbinfo* function will print the set and mdd type names and supports SVG and JSON outputs for tiling (:ref:`docs `) - The *encode* function supports values, interval and ramp color tables (:ref:`docs `) - The *project* function allows a target resolution and interpolation method to be specified (:ref:`docs `) - New virtual collection RAS_TYPES allows to select all rasdaman types (:ref:`docs `) - New script prepare_issue_report.sh for automating issue reporting (:ref:`docs `) - Support hostname:collection syntax for disambiguating collections with the same name on different nodes in a federation (:ref:`docs `) - UDF code that accepts or returns arrays of composite base type must check if the array data is pixel- or channel-interleaved (:ref:`docs `) - Starting and stopping rasdaman is more configurable and flexible, recommended to review sections on :ref:`Service Control `, and the scripts used underneath, :ref:`start_rasdaman.sh ` and :ref:`stop_rasdaman.sh ` - Custom script for monitoring of rasdaman services :ref:`watch_rasdaman.sh ` - Multiple marray expression optimizations for a much faster evaluation of queries that contain marray expressions - Report user, execution time and result size in the logs for each evaluated rasql query - Deprecated network protocols RNP and RPC have been *removed*, clients compiled against these old protocols will need to be recompiled with the latest client API libs in order to be able to communicate with v10.0 rasdaman servers - Subsetting has to be properly within the array spatial domain, otherwise an error will be thrown (:ref:`docs `) - Logs are only readable by the rasdaman user now - Improved rascontrol/rasmgr help sections and error handling - Improved performance of tile merging on client side - Errors from the server have been improved to return more detailed information - Fix decoding and encoding of octet data with GDAL - Fix issues when the rasdaman data directory is stored on NFS - Support passing openOptions to GDAL on decode, e.g. for selecting an overview level from the input data (:ref:`docs `) - Support `GDAL virtual file system `__ filepaths starting with /vsi, e.g. /vsis3, /vsizip, etc. - Fix memory leak when a java client (e.g. petascope) interrupts result transfer - Fix forwarding of -xp parameters in rasmgr.conf to spawned rasservers OGC frontend (petascope) ^^^^^^^^^^^^^^^^^^^^^^^^ - Support for virtual coverages which can combine multiple coverages with different CRS (e.g. UTM zones) into a single coverage with a global CRS (:ref:`docs `) - WCPS supports LET clause for defining variables (:ref:`docs `) - WCPS requires only one spatial X or Y axis to be set when scaling (:ref:`docs `, and does not require specification of non-spatial axes if they are not to be scaled (:ref:`docs `) - WCPS and WCS support scaling down on irregular axes - WCPS and WCS scaling will use pyramid members for efficiency if they exist - WCPS supports *decode* function (:ref:`docs `) and positional parameters (:ref:`docs `) - WCPS supports *mod* function and *domain* function on whole coverage (:ref:`docs `) - WCPS supports *describe* function which returns result like WCS DescribeCoverage (:ref:`docs `) - WCPS supports *min*/*max* functions (:ref:`docs `) - WCPS supports the *crsSet* function to return the coverage CRS as output (:ref:`docs `) - WCPS supports binary operations on mixed geo and non-geo coverages - WCPS supports rasql null operations (:ref:`docs `) - WCPS supports remote coverage IDs containing '-' characters - WCS, WCPS and WMS support setting an interpolation method on data reprojection (:ref:`docs `) - WCS supports INSPIRE coverages (:ref:`docs `) - WCS GetCapabilities supports the AcceptLanguages parameter - WCS GetCapabilities response adds the list of axis names for each coverage in rasdaman:axisList elements and has more precise WGS84 bboxes (:ref:`docs `) - WCS GetCoverage and WCPS encode support CIS 1.1 JSON format (:ref:`docs `) - WCS ProcessCoverages supports WCPS abstract query specified in an XML-wrapper, and the `q` parameter in addition to `query` (:ref:`docs `) - WCS-T supports importing `GDAL virtual file system `__ filepaths starting with /vsi, e.g. /vsis3, /vsizip, etc. - WMS supports request for deleting a layer specifically (:ref:`docs `) - WMS styles support SLD color tables (:ref:`docs `) - WMS validates the XML format of user-specified SLD styles before persisting to database - WMS style query fragments support multiple layer iterators (:ref:`docs `) - rasql servlet supports rasdaman user credentials in basic authentication format in the HTTP Authorization header (:ref:`docs `) - rasql servlet will try to guess and set the correct mime-type of results - SECORE is embedded into petascope, so that it does not get installed as a separate service (def.war) anymore; it is now available at the /rasdaman/def endpoint instead of at /def (:ref:`docs `) - Unauthenticated users will be mapped to the rasdaman_user credentials if set in petascope.properties (:ref:`docs `) - Remove petascope_admin_user and petascope_admin_pass from petascope.properties and allow rasdaman admin users to perform write requests in petascope from external IPs (:ref:`docs `) - Filter out exception stacktraces to show only lines in rasdaman code; for more details, check the full_stacktraces option in the :ref:`docs ` - Improve error reporting to return correct HTTP error codes 4xx and 5xx to clients - Split rasql error message and rasql query in different ExceptionText elements in the returned XML exception (:ref:`docs `) - Improve startup performance and logging of requests in petascope.log - Log rasdaman username for each request in petascope.log if basic authentication is enabled - Support qualified remote coverage ids or layer names (:ref:`docs `) - Support downloading results larger than 2GB - Allow non-ASCII characters in coverage metadata wcst_import ^^^^^^^^^^^ - Only Python 3 is supported - Support for servers secured with basic authentication; credentials should be specified with options -u or -i (check wcst_import.sh -h) - Support import of individual bands in GDAL general recipe (:ref:`docs `) - Support importing overviews from TIFF / JP2000 files (:ref:`docs `) - Support importing Sentinel 1 data with a custom recipe (:ref:`docs `) - Support creating a coverage pyramid for WMS with specific factors (:ref:`docs `) - Support "python_cmd" as an alternative to "cmd" in hooks (:ref:`docs `) - Support parameter to store the imported files in the ingredients file used by after_ingestion hooks (:ref:`docs `) - Support GDAL SIGNEDBYTE metadata for properly importing signed char (octet) data - Support referencing the index of the current processed GRIB message (:ref:`docs `) - Support attaching local metadata to a coverage from external text files (:ref:`docs `) - Support the metadata option in map_mosaic, time_series_regular and time_series_irregular recipes - Support automattically extracting global metadata and colorTable from TIFF files for GDAL general_coverage recipe - Significantly improved performance of netcdf data import or for a large number of files - Validate band names in general recipe - Do not send WCS DescribeCoverage request for getting axis labels from coverage - Use non-standard request to check if a coverage exists (:ref:`docs `) - Send requests to Petascope as POST containing the built GML of the importing coverage instead of GET with a local GML file - Show grid domains of imported files - Support for importing data from Amazon S3 object stores via GDAL /vsis3 driver - Fixed evaluation of skip setting in general_coverage recipe - Fix parsing of scientific notation in null values federation ^^^^^^^^^^ - Support for flexible federated access control :ref:`docs ` - Support for communication between federated nodes running different versions of rasdaman - Fix evaluation of marray with mixed local and remote array references - Fix buffer overflow when reading messages with lines longer than 512 characters - Petascope employs exponential back-off when it fails to contact a federation peer clients ^^^^^^^ - A new rasql-web-console client is now available, installed in /opt/rasdaman/share/rasdaman/www/ - wsclient - Removed support for login with petascope_admin_user credentials (:ref:`docs `) - Support authentication - Once logged in, refreshing the Web browser will preserve the session - Estimate and show coverage sizes - Updating coverage metadata requires to login as admin - Display all footprints button only shows the available rows in WCS/WMS GetCapabilities tabs - DeleteCoverage and InsertCoverage tabs are shown only when logged in as admin - Downscaled pyramid members management in the WMS DescribeLayer tab - Add text>> widget to display texts - raswct has improved error handling - rasdapy has been updated to work on Python 3 (`docs `__); rasdapy on Python 2 is not maintained anymore, migrating to rasdapy3 is recommended documentation ^^^^^^^^^^^^^ - Guidelines on how to report problems, with a script to help preparing issue reports (:ref:`docs `) - New section with cheatsheets for WCS / WCPS / WMS / clients (:ref:`docs `) - New section for petascope configuration (:ref:`docs `) - as a result, comments in the petascope.properties file have been mostly removed - New section on security and reseting default passwords (:ref:`docs `) - New section with guidelines for backup of rasdaman (:ref:`docs `) installation ^^^^^^^^^^^^ - On new installation, petascope will be deployed in standalone embedded mode by default, so that it does not require a system Tomcat to run (:ref:`docs `); if it is preferred to deploy petascope in an external Tomcat, this can be done easily by updating the configuration, and copying rasdaman.war to the webapps Tomcat directory - On new installation, petascope requires basic authentication with HTTP Authorization header by default - petascope will use the locally installed gdal-java library instead of embedding it into rasdaman.war - Package installation can be customized with an installation profile (:ref:`docs `) - The rasdaman service script for starting/stopping rasdaman can be customized with configuration in /etc/default/rasdaman (:ref:`docs `) Incompatible changes -------------------- - Ubuntu 16.04 is not supported anymore, rasdaman v10.0 can be installed only on CentOS 7, Ubuntu 18.04 / 20.04 / 22.04 rasdaman core ^^^^^^^^^^^^^ - Null values have a different and more accurate semantics based on null masks, additional null-specific operators, improved handling of null when encoding data, e.g. use of "null" keyword in JSON (:ref:`docs `) - Support for access control in rasmgr has been removed; use rasql for managing rasdaman users, assigning privileges to them, or creating triggers for access and resource usage control (:ref:`docs `) - Insitu registration of overlapping files now matches the semantics of regular non-insitu updates (:ref:`docs `): - In v9.8, registering a file A which overlaps an already registered file B would cause B to be de-registered from rasdaman - In v10.0, both will be registered but generally in the overlapping region the data from only the last registered file (A in this case) will be available; null values are handled as well by overlaying with the less recently registered files - Deprecated tool rasdl has been removed, use rasql queries for type management (:ref:`docs `) - Type coercion rules which govern the type of operation results based on the input data types have significantly changed, and may result in different behavior in existing queries; it is recommended to review the :ref:`docs ` - Casting from larger to smaller type will lead to "clamping" of values outside of the valid range of the new smaller type, which may result in different behavior when existing queries evaluate with v10.0 (:ref:`docs `) - Subsetting has to be within the array spatial domain now, otherwise an error will be thrown (:ref:`docs `); when a subset needs to extend outside or intersect the array sdom, use the extend function. - Existing UDF code that accepts or returns arrays of composite base type should be adapted to check if the array data is pixel- or channel-interleaved (:ref:`docs `) - If federation is enabled, listing collections will show both local and remote collections; furthermore, only collections to which the rasdaman user has access will be listed; it is recommended to review the :ref:`docs ` - Deprecated network protocols RNP and RPC have been removed; clients compiled against these old protocols will need to be recompiled with the latest client API libs in order to be able to communicate with v10.0 rasdaman servers (:ref:`docs `) - rasdapy on Python 2 is not maintained anymore, migrating to rasdapy3 is recommended (`docs `__) OGC frontend (petascope) ^^^^^^^^^^^^^^^^^^^^^^^^ - Changed behavior of ``rasdaman_user`` in petascope.properties (:ref:`docs `): - v9.8 ``rasdaman_user`` is used if authentication is disabled with `authentication_type=` - v10.0, the old use remains, but if ``authentication_type=basic_header`` and a request is missing Basic authentication credentials: - if ``rasdaman_user=a_valid_rasdaman_user``, petascope will allow the request as if it had credentials from ``rasdaman_user`` and ``rasdaman_pass`` - if ``rasdaman_user=``, then petascope will throw a missing credentials exception. - In the GetCapabilities response, the way rasdaman adds various metadata for each coverage (``sizeInBytes``, ``axisList``, ``hostname``, ``endpoint`` and ``blackListed``) has changed: - v9.8 the metadata was put under the ```` element for each coverage, e.g. .. code-block:: xml 224775000 Lat,Long ... - v10.0 the metadata is now put under an `` element instead, e.g. .. code-block:: xml sizeInBytes 224775000 axisList Lat,Long ... - When a client sends ``GetMap`` requests, the rules below define (in conformance with the WMS 1.3 standard) how a style is applied to the requested layers: - If no styles are defined then rasdaman returns the data as-is, encoded in the requested format. - If some styles are defined, e.g. X, Y, and Z, then: - If the client specifies a style Y, then Y is applied. - If the client does not specify a style, then: - If the admin has set a style as default, e.g. Z, then Z is applied. - Otherwise, if no style has been set as default, then the first style from the list of styles, e.g. X is applied. - Remove use of `petascope_admin_user` in petascope.properties (:ref:`docs `): .. table:: :widths: auto +----------+---------------------------------------------------------------------------------------------+ | Version | Behavior | +==========+=============================================================================================+ | v9.8 | allows credentials configured by ``petascope_admin_user`` and ``petascope_admin_pass`` | | | to be used for login as admin user in WSClient or execute write requests equivalently | | | as the admin user configured by ``rasdaman_admin_user``. | +----------+---------------------------------------------------------------------------------------------+ | v10.0 | ``petascope_admin_user`` and ``petascope_admin_pass`` are removed. These settings (if | | | existing in the local system) will be copied as deprecated settings in the updated | | | ``petascope.properties``. Any requests using these deprecated credentials will be invalid. | | | One has to the credentials from a valid rasdaman user with RW rights in WSClient; direct | | | requests must include these credentials in the HTTP Authorization header in Basic | | | authentication format. | +----------+---------------------------------------------------------------------------------------------+ - Many non-OGC API supported by petascope have been redefined and consolidated under the `/rasdaman/admin` endpoint. Below all changes are listed (note that the server endpoint, e.g. `http://localhost:8080` has been omitted from the URLs). The v9.8 URLs will not work anymore, it is required to adapt to the new syntax. .. table:: :widths: auto +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Description | Version | Request example | +========================================================================================+==========+=============================================================================================+ | Create a WMS layer | v9.8 | /rasdaman/ows?service=WMS&version=1.3.0&request=InsertWCSLayer&wcsCoverageId=MyCoverage | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/layer/activate?COVERAGEID=MyCoverage | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Remove a WMS layer | v9.8 | /rasdaman/ows?SERVICE=WMS&VERSION=1.3.0&REQUEST=DeleteLayer&LAYER=MyLayer | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/layer/deactivate&COVERAGEID=MyLayer | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Create a WMS style | v9.8 | /rasdaman/ows?SERVICE=WMS&VERSION=1.3.0&REQUEST=InsertStyle&NAME=style1&LAYER=cov1 | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/layer/style/add?COVERAGEID=cov1&STYLEID=style1 | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Update a WMS style | v9.8 | /rasdaman/ows?SERVICE=WMS&VERSION=1.3.0&REQUEST=UpdateStyle&NAME=style1&LAYER=cov1 | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/layer/style/update?COVERAGEID=cov1&STYLEID=style1&NEWSTYLEID=style2 | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Remove a WMS style | v9.8 | /rasdaman/ows?SERVICE=WMS&VERSION=1.3.0&REQUEST=DeleteStyle&LAYER=cov1&NAME=style1 | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/layer/style/remove?COVERAGEID=cov1&STYLEID=style1 | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Check if a coverage exists (`docs | v9.8 | /rasdaman/ows/objectExists?coverageId=cov1 | | `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/coverage/exist?COVERAGEID=cov1 | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Rename a coverage | v9.8 | /rasdaman/admin/UpdateCoverageId?COVERAGEID=cov1&NEWID=cov2 | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/coverage/update?COVERAGEID=cov1&NEWCOVERAGEID=cov2 | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Update coverage metadata (`docs | v9.8 | /rasdaman/admin/UpdateCoverageMetadata | | `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/coverage/update | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Create a pyramid level | v9.8 | /rasdaman/ows?service=WCS&request=InsertScaleLevel&version=2.0.1&coverageId=cov_3D&level=4 | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/coverage/pyramid/create?COVERAGEID=cov_3D&MEMBER=cov_3D_4&SCALEVECTOR=1,4,4 | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Whitelist all coverages | v9.8 | /rasdaman/admin?SERVICE=WCS&REQUEST=WhiteListAll | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/wcs/whitelistall | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Blacklist all coverages | v9.8 | /rasdaman/admin?SERVICE=WCS&REQUEST=BlackListAll | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/wcs/blacklistall | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Whitelist some coverages | v9.8 | /rasdaman/admin?SERVICE=WCS&REQUEST=WhiteList&COVERAGEID=cov1,cov2 | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/wcs/whitelist?COVERAGELIST=cov1,cov2 | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Blacklist some coverages | v9.8 | /rasdaman/admin?SERVICE=WCS&REQUEST=BlackList&COVERAGEID=cov1,cov2 | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/wcs/blacklist?COVERAGELIST=cov1,cov2 | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Whitelist all layers | v9.8 | /rasdaman/admin?SERVICE=WMS&REQUEST=WhiteListAll | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/wms/whitelistall | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Blacklist all layers | v9.8 | /rasdaman/admin?SERVICE=WMS&REQUEST=BlackListAll | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/wms/blacklistall | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Whitelist some layers | v9.8 | /rasdaman/admin?SERVICE=WMS&REQUEST=WhiteList&LAYERS=cov1,cov2 | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/wms/whitelist?LAYERLIST=cov1,cov2 | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ | Blacklist some layers | v9.8 | /rasdaman/admin?SERVICE=WMS&REQUEST=BlackList&LAYERS=cov1,cov2 | | (`docs `__) +----------+---------------------------------------------------------------------------------------------+ | | v10.0 | /rasdaman/admin/wms/blacklist?LAYERLIST=cov1,cov2 | +----------------------------------------------------------------------------------------+----------+---------------------------------------------------------------------------------------------+ federation ^^^^^^^^^^ - Federation between nodes running rasdaman v9.8 and rasdaman v10.0 is not possible, older versions must be upgraded. - Federated requests are authenticated and authorized based on tokens in the new version (:ref:`docs `). In order to migrate a system from a previous version, follow these steps: 1. Update and restart rasdaman on each machine. When the new version starts, a pair of RSA keys associated with the machine will be automatically generated and stored in ``/opt/rasdaman/etc/keys/local/``. 2. Copy the public key of the local machine to the ``/opt/rasdaman/etc/keys/federation/`` directory on all other nodes in the federation (:ref:`docs `). 3. Migrate the list of inpeer and outpeer definitions from ``/opt/rasdaman/etc/rasmgr.conf`` to ``/opt/rasdaman/etc/rasfed.properties``; each peer definition must be extended with a role map (otherwise all requests will result in Access denied exceptions) (:ref:`docs `). 4. Restart rasdaman on each machine. Upgrading --------- The sections below contain instructions on how to upgrade the software installation from a previous version to stable rasdaman v10.0. In addition, it is highly recommended to review the list of incompatible changes. From v9.8 ^^^^^^^^^ To upgrade from the previous stable version v9.8 to stable v10.0: 1. Stop rasdaman with ``sudo service rasdaman stop``; make sure that the processes are really stopped: if ``ps aux | grep -E 'ras(mgr|server)'`` returns any processes, stop them with ``pkill -9 -f 'ras(mgr|server)'`` 2. On Ubuntu update the repository metadata with ``sudo apt-get update`` 3. Install the new rasdaman version with ``sudo apt-get install rasdaman`` (Ubuntu) or ``sudo yum update rasdaman`` (CentOS 7) From testing ^^^^^^^^^^^^ To upgrade from the latest testing version to stable v10.0: 1. Stop rasdaman with ``sudo service rasdaman stop``; make sure that the processes are really stopped: if ``ps aux | grep -E 'ras(mgr|server)'`` returns any processes, stop them with ``pkill -9 -f 'ras(mgr|server)'`` 2. Remove the current rasdaman package with ``sudo apt-get remove rasdaman`` (Ubuntu) or ``sudo yum erase rasdaman`` (CentOS 7); this is required because the stable package has the same version but a lower iteration number than the testing one 3. Change the testing package repository to the stable one in ``/etc/apt/sources.list.d/rasdaman.list`` (Ubuntu) or ``/etc/yum.repos.d/rasdaman.repo`` (CentOS 7) 4. On Ubuntu update the repository metadata with ``sudo apt-get update`` 5. Install the new rasdaman version with ``sudo apt-get install rasdaman`` (Ubuntu) or ``sudo yum update rasdaman`` (CentOS 7) Patch releases -------------- Below fixes in rasdaman v10.0.X patch releases are listed. v10.0.5 (2022-07-25) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fix initialization of areas outside of clipped regions to null values OGC frontend (petascope) - WMS GetMap - request's bbox doesn't touch layer's bbox, then, the output must be transparent - WCPS fixed null values for coverages created by decode() operator v10.0.4 (2022-06-29) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Fix import of non-consecutive messages from grib files - Fix 'list collections on host' to return only the collections on the specified peer host, instead of collections on all federated hosts - Return an empty tile if an insitu registered file cannot be decoded because it has been removed, instead of throwing an error; this enables smooth handling of rolling archives where registered data may be removed depending on the data retention policy - Fix band subsetting on nD marray constructor expressions - Fix type checking when setting a null mask, to correctly validate that the null mask is a boolean array matching in domain with the array to which it is set OGC frontend (petascope) - Fix missing wms namespace for some elements in WMS GetCapabilities - Fix problem with wrong grid domains in imageCrsdomain() for clip() operator - Fix problem with WMS GetMap requests when zooming in with wrong results from pyramid members - Fix problem with WMS GetMap requests for virtual coverages with non-virtual pyramid members - Fix problem with WCPS domain(...).lo/hi to return geo bound for non-XY axis - Add column requests/second in statistics admin management page - Fix WMS GetLegendGraphic request to use default style if style paramater is omitted - Fix filtering virtual coverages by requesting user's permission when handling WCS/WMS GetCapabilities requests - Fix WM GetMap request with multiple layers - Support mismatching time axes between pyramid members in WMS GetMap requests - Fix WMS scattering data at layer's corners - Improve performance for WCS DescribeCoverage / GetCoverage requests - Support full_stacktraces in petascope.properties (besides full_stacktrace) to filter unnecessary exception logs - Add settings in petascope.properties for configuring the Tomcat JDBC Connection Pool wcst_import - Validate if all input files have the same CRSs - Improve ingredients file schema validation - Import only messages corresponding to the specified band identifiers wcs_client - Fix coverage sizes calculation for virtual coverages - Support renaming coverage in WCS DescribeCoverage tab Documentation - Improve doc for WCPS encode format and wcst_import slicer options v10.0.3 (2022-04-25) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - Improve handling of concurrent clients in rasmgr OGC frontend (petascope) - Improve performance of WMS GetCapabilities - Fixed virtual layers not updated when source coverages updated - Embedded SECORE supports JSP to manage CRSs - Allow case-insensitive axis labels - Make WCS scaleextent and SOAP requests fully standard-compliant wcst_import - Fix bug when skip is true and no input files match with the defined pattern - Use user's customized band names in coverage's global metadata for netCDF recipe - When wcst_import is interrupted by ``Ctrl + C`` or ``kill `` (SIGINT and SIGTERM signals), the resume file will be properly updated with all imported files up to that point - Check if user can create resume file before analyzing input files - Allow case-insensitive axis labels - Improve parsing for axes definitions in CRS federation - Improve performance of WCS/WMS GetCapabilities when there are virtual coverages - Make local metadata collection more robust in case of failures v10.0.2 (2022-04-05) ^^^^^^^^^^^^^^^^^^^^ OGC frontend (petascope) - Improve performance of queries in petascopedb - Enhance logging of requests in petascope.log to allow distinguishing which request exactly was evaluated wcst_import - Improve axis type detection from CRS - Make sure each file to be imported is open only once with GDAL, to improve import performance federation - Fix communication between rasfed instances on federated nodes documentation - Added a guide for migrating an installation from one machine to another (:ref:`docs `) v10.0.1 (2022-03-30) ^^^^^^^^^^^^^^^^^^^^ rasdaman core - More robust handling of spurious disk errors when checking if a file to be registered is readable or not OGC frontend (petascope) - More robust handling of read timeouts in communication with rasfed - Fixed leak of large binary objects in PostgreSQL which were left in petascopedb when removing data, e.g. dropping a coverage, pyramid levels, styles, etc; these objects will be properly and automatically removed via triggers from now on. However, the already leaked orphan objects cannot be automatically removed, and require the following steps to address in order to reduce the size of petascopedb: .. code-block:: shell # Stop rasdaman and embedded petascope if exists sudo service rasdaman stop # If petascope runs on external tomcat, then stop it sudo service tomcat9 stop # Rename the existing petascopedb to petascopedb_backup sudo -u postgres psql -c "ALTER DATABASE petascopedb RENAME TO petascopedb_backup" # Create a new empty database sudo -u postgres createdb petascopedb # Change in petascope.properties metadata_url=jdbc:postgresql://localhost:5432/petascopedb_backup # Finally, run migration script to copy only the relevant data from # petascopedb_backup to the new petascopedb /opt/rasdaman/bin/migrate_petascopedb.sh # Start rasdaman (and Tomcat if needed) sudo service rasdaman start sudo service tomcat9 start # Verify that services are working as expected, if all is fine the # petascopedb_backup can be dropped from PostgreSQL (but maybe consider # exporting it to a backup first) sudo -u postgres dropdb petascopedb_backup - Improve performance of processing GetCapabilities requests in federations - Fix corner case of incorrectly calculating coordinates of irregular time axis when encoding to NetCDF wcst_import - Fix support for per-band nullsets to match the capabilities of rasql (:ref:`docs `) - Fix validation of axis labels to be case-insensitive federation - Improve error handling and network communication