wiki:VersionsArchive2

.. continuing from the recent versions page.

Version History

Version 9.8 (2019-07-25)

Summary of changes:

  • petascope:
    • support for WCS version 2.1 request (docs)
    • support for exporting to CIS 1.1 GML format (docs)
    • support for ingestion of GDAL subdatasets
    • standalone deployment supports specifying a path to a custom petascope.properties
    • WMS uses new project() function, by default approximate reprojection with nearest neighbor interpolation
    • WMS supports a non-standard interpolation method parameter
    • WMS maximum cache size can be configured in petascope.properties
    • improved type management
    • the default petascope log policy changes to daily rotation with compression of past logs
    • support for specifying a color palette from external file
    • WCPS scale supports specifying only one spatial axis; aspect ratio will be automatically determined in this case
    • WCPS condensers supports coverage expressions in the where clause
    • support for white-listing IP addresses from which write WCS-T requests are allowed (replacing option disable_write_requests in petascope.properties)
    • petascope can load HTML pages from directory outside of rasdaman.war (configure in petascope.properties)
    • support for lo() / hi() in domain() / imageCrsdomain() in WCPS (docs)
    • support for specifying a subset with the domain() function (docs)
    • WSClient shows total volume of coverages / layers
  • secore:
    • EPSG/0 points to the latest EPSG dataset version (docs)
    • support for manually adding EPSG datasets by dropping them in secoredb/ (docs)
    • improved handling of multiple concurrent requests
  • wcst_import:
    • support for before/after ingestion hooks: commands automatically executed during data ingestion (docs)
    • support for non-blocking ingestion: analyze/import each file individually (not always possible, docs)
    • support for custom axis labels in general_coverage recipe (docs)
    • support for automatically reading axis and band metadata for netCDF data (docs)
    • custom recipe sentinel2 has been added for convenient import of Sentinel 2 data (works only with recent GDAL 2.1+, docs)
    • improved file handling for recipes import gdal, netcdf and Sentinel 2 data
    • support for grouping multiple input files into a single slice on irregular axis
    • support for HTTPS with self-signed certificate
    • support for CInt16 and CInt32 data in wcst_import.sh
  • rasdaman server:
    • extended project() with two more powerful variants that allow to specify output bounds and extent, as well as resampling algorithm and error threshold (docs)
    • support for NaNf and Inff floating-point constants, in addition to double NaN and Inf (docs)
    • support for NaN, NaNf and Infinity in the encode format parameters (docs)
    • default PNG compression on encode has changed from level 6 to 2 (docs)
    • on scalar results rasql properly writes the result to a file if —out file is specified
    • allow specifying empty null values to clear the null values of an expression (doc)
    • fixed updates with null values + proper initialization with null values when clipping multi-band arrays
    • fixed null value handling in min/max operators
    • base type compatibility is checked on array updates
    • improve checking for port availability in start/stop_rasdaman.sh
    • several bug fixes and improvements in the server/client protocol
    • directql and rasdl functionality moved to the rasserver binary; rasdl is deprecated and will be removed in the next version
    • start_rasdaman.sh and stop_rasdaman.sh support selectively starting core rasdaman and (embedded) petascope/secore services
    • support for CInt16 and CInt32 base types
    • support conditional compilation of internally implemented png, jpeg, and tiff converters

Contributors (by number of patches):

  • 107 Bang Pham Huu
  • 56 Dimitar Misev
  • 10 Arsenij Percov
  • 9 Alexandru Hambasan
  • 4 Dragi Kamov
  • 1 Sebastian Villarroya
  • 1 aahmed

v9.8.1 (2019-07-25)

Addressed tickets between v9.8.0 and v9.8.1:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.8.0..v9.8.1 | sort -k 3 -t ':'

v9.8.0 (2019-05-19)

Addressed tickets between v9.8.0-beta3 and v9.8.0:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.8.0-beta3..v9.8.0 | sort -k 3 -t ':'

v9.8.0-beta3

Addressed tickets between v9.8.0-beta2 and v9.8.0-beta3:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.8.0-beta2..v9.8.0-beta3 | sort -k 3 -t ':'

v9.8.0-beta2

Addressed tickets between v9.8.0-beta1 and v9.8.0-beta2:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.8.0-beta1..v9.8.0-beta2 | sort -k 3 -t ':'

v9.8.0-beta1

Addressed tickets between v9.7.0 and v9.8.0-beta1:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.7.0..v9.8.0-beta1 | sort -k 3 -t ':'

Version 9.7

Summary of changes:

  • petascope:
    • WMS extended to support 3D+ coverages (docs)
    • reintroduced support for pyramid creation for WMS (docs)
    • improve WMS rendering when reprojection is involved
    • support for ingestion of spatially overlapping data with wcst_import
    • allow expressions in WCPS subsets on grid axes
    • support for curtain/corridor clipping in WCS/WCPS
    • wcst_import can automatically ingest netcdf variable metadata
    • wcst_import allows appending slices to bottom of irregular axis
    • wcst_import can run in daemon mode and watch for new files to import
  • WS client:
    • support for 3D+ WMS layers
    • allow selecting WMS styles for preview
    • OWS metadata management has moved from /rasdaman/ows/admin to a tab in the WS client
  • rasdaman server:
    • allow floating-point null values
    • dynamic null values specification in queries for any array expression (more info)
    • clip() supports continuous and discrete corridors (docs)
    • clip() supports general expressions as point coordinates, instead of just literals
    • on updates, null value areas from the source array will not overwrite the target array (more info)
    • the UPDATE clause allows specifying source collections in a FROM clause (more info)
    • multiple fixes for operations on data of composite values
    • inf is recognized as a double literal
    • fixes with the project() function
    • acos/asin/atan are alias functions for arccos/arcsin/arctan
    • fixed compilation with g++ 8.1 and installation on Debian buster
    • C++ client API is thread-safe on demand
    • support for extended NetCDF primitive types (notably unsigned ints)
    • dependency on netcdf_c++ library has been removed
    • environment variable $RASDATA is ignored; the data directory is deduced from the connect string in rasmgr.conf
    • improved transaction failure handling on client/server side
    • clip Linestring supports WITH COORDINATES option to add coordinates to each value on the Linestring
  • documentation:

Contributors (by number of patches):

  • 87 Bang Pham Huu
  • 52 Dimitar Misev
  • 17 Dragi Kamov
  • 10 Bogdan Ciurezu
  • 10 Alexandru Hambasan
  • 7 Brennan Bell
  • 2 Vlad Merticariu

v9.7.0

Addressed tickets between v9.7.0-beta2 and v9.7.0:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.7.0-beta2..v9.7.0 | sort -k 3 -t ':'

v9.7.0-beta2

Addressed tickets between v9.7.0-beta1 and v9.7.0-beta2:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.7.0-beta1..v9.7.0-beta2 | sort -k 3 -t ':'

v9.7.0-beta1

Addressed tickets between v9.6.0 and v9.7.0-beta1:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.6.0..v9.7.0-beta1 | sort -k 3 -t ':'

Version 9.6

Summary of changes:

  • petascope:
    • polygon clipping support in WCS and WCPS (documentation)
    • WCS GetCapabilities requests do not require an AcceptVersions parameter
    • 2-D outputs are automatically transposed if they have YX grid axes order natively (e.g. from netcdf import)
  • WS client:
    • wwd widget type to display 2D results in the ProcessCoverages tab with WebWorldWind
    • OWS admin page has been moved from /rasdaman/admin to /rasdaman/ows/admin
    • support for POST requests, CRS and Clip extensions on the WCS GetCoverage tab
  • secore:
    • security can be configured in secore.properties
  • rasdapy (python API for rasdaman)
    • integrated in the rasdaman repository (source:applications/rasdapy) and systemtest
    • interface streamlined with the Java/C++ API
    • multiple bug fixes
  • rasdaman server:
    • support for multipolygon clipping + curtains + multiple fixes in the clip function (more info)
    • support for changing a collection type with an 'alter collection' statement
    • fixed condenser output with respect to the null values of the input
    • fixed avg_cells and stddev on areas that do not fully intersect physical tiles
    • the output of floating-point scalar values from rasql is consistent with the csv/json format

v9.6.0

Addressed tickets between v9.6.0-beta2 and v9.6.0:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.6.0-beta2..v9.6.0 | sort -k 3 -t ':'

v9.6.0-beta2

Addressed tickets between v9.6.0-beta1 and v9.6.0-beta2:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.6.0-beta1..v9.6.0-beta2 | sort -k 3 -t ':'

v9.6.0-beta1

Addressed tickets between v9.5.0 and v9.6.0-beta1:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.5.0..v9.6.0-beta1 | sort -k 3 -t ':'

Version 9.5

Major changes:

  • petascope:
    • new database schema, allowing coverages to be ingested / registered in parallel
    • faster registration / ingestion
    • better precision in geo to index coordinate transformation
    • fixed scaling extension for correctly scaling down ( < 1) and up ( > 1)
    • WMS supports styles with WCPS transformation query (more details)
    • petascope and secore (rasdaman.war and def.war) can be executed standalone (e.g. java -jar rasdaman.war)
      • ports and other details can be controled in the petascope.properties / secore.properties
  • wcs-client:
    • improved interface
    • added WMS tab
    • world wind globe shows coverage bounding boxes
  • wcst_import:
    • improved analysis speed of grib and netcdf files
    • support for automatic metadata ingestion
  • rasdaman server:
    • improved precision of output in csv and json
    • polygon clipping, subspacing, curtain and linestring extraction (alpha version, rasql only)
  • installation
    • added support for Ubuntu 16.04 (integration testing and packages)
    • building on Debian 9 fixed
    • building on Raspberry Pi (ARM architecture) fixed
    • removed autotools-based build files, rasdaman can be only built with cmake now
    • removed deprecated tool rasimport
    • pdf manuals are installed by default

Upgrade from v9.4.0

The petascope database has to be migrated to a new schema version: simply execute sudo migrate_petascopedb.sh after updating your installation.

v9.5.0

Addressed tickets between v9.5.0-beta1 and v9.5.0:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.5.0-beta1..v9.5.0 | sort -t: -k3,3n

v9.5.0-beta1

Addressed tickets between v9.4.2 and v9.5.0-beta1:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.4.2..v9.5.0-beta1 | sort -t: -k3,3n

Version 9.4

Major changes:

  • Support transposing of the last two axes, relevant for CF-compliant netCDF data mostly (documentation on the format parameters specification page).
  • The encode function in WCPS quries supports GML format export in the same way as WCS does. Example:
    for c in (coverageId) return encode(c, "application/gml")
    
  • The encode function in WCPS queries supports the more flexible and powerful JSON-style format parameters (documentation on the format parameters specification page).
    • Note: the key-value pair format parameters style is deprecated.
  • WCS/WCPS support exporting array results in JSON format ("application/json").

v9.4.2

Addressed tickets between v9.4.1 and v9.4.2:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.4.1..v9.4.2 | sort -k 3 -t ':'

v9.4.1

Addressed tickets between v9.4.0 and v9.4.1:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.4.0..v9.4.1 | sort -k 3 -t ':'

v9.4.0

Addressed tickets between v9.4.0-beta2 and v9.4.0:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.4.0-beta2..v9.4.0 | sort -k 3 -t ':'

v9.4.0-beta2

Addressed tickets between v9.4.0-beta1 and v9.4.0-beta2:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.4.0-beta1..v9.4.0-beta2 | sort -k 3 -t ':'

v9.4.0-beta1

Addressed tickets between v9.3.2 and v9.4.0-beta1:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.3.2..v9.4.0-beta1 | sort -k 3 -t ':'

Version 9.3

Major changes:

  • Support for importing GRIB data ingestion (more info)
  • Better support for NetCDF data, integrated with petascope (more info)
  • Support for JSON arrays import/export (temporary documentation)
  • Advanced JSON-style format-parameters support in encode/decode (more info)
  • WCSTImport support a general coverage recipe that can be used with complex formats like GRIB or NetCDF (more info)
    • Note: rasimport is deprecated in favor of WCSTImport, and will be removed in the next version of rasdaman
  • WCPS uses a brand new and improved parser and implementation by default
  • CRS reprojection is now available in both WCS and WCPS
  • Critical memory leak happening during data ingestion has been fixed

Development changes:

  • CMake can be used as an alternative to build rasdaman (more info)
    • Note: this will become default in the next version of rasdaman and autotools will be removed
  • rasdaman is compiled with -std=c++11 by default now; gcc 4.8 or higher is required

v9.3.2

Addressed tickets between v9.3.1 and v9.3.2:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.3.1..v9.3.2 | sort -k 3 -t ':'

v9.3.1

Addressed tickets between v9.3.0 and v9.3.1:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.3.0..v9.3.1 | sort -k 3 -t ':'

v9.3.0

Addressed tickets between v9.3.0-beta1 and v9.3.0:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.3.0-beta1..v9.3.0 | sort -k 3 -t ':'

v9.3.0-beta1

Addressed tickets between v9.2.1 and v9.3.0-beta1:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.2.1..v9.3.0-beta1 | sort -k 3 -t ':'

Version 9.2

Major new changes:

  • Scalability
    • Improved storage support up to exascale datasets on all filesystems
    • Improved performance and reliability for the rasnet protocol; rasnet is now the default protocol implementation in rasdaman.
    • Support for automated balancing of worker processes
  • Ingestion
    • WCSTImport user interface improvements: wcs extract recipe, ability to resume and retry imports, improved filtering of input files, improved status messages.
    • WCSTImport stable recipe API allowing developers to create their own custom recipes for their specific usecases
    • Various bug fixes for WCST implementation.
    • Improved transactional handling in the SQLite/Filestorage backend.
  • OGC Web Services
    • Embedded server for OGC Web Services platform - now it can also run as a standalone executable without the need of an external server like Tomcat
    • Support for PNG as an export format in WCS
  • User Interface
    • Revamped interface for the WCS Client + various bug fixes
  • Misc
    • Support for runtime configuration of logging
    • Greatly simplified installation procedure with rasdaman installer, RPM and DEB packages
    • Over 200 fixes for reported issues

Update from 9.1.x:

  • After installing 9.2.0, please run update_db.sh (if installed from sources); if you have installed rasdaman from the RPM packages, note that starting from v9.2.0 we are hosting the RPM packages ourselves. The repository URL as well as the structure of the packages has changed a little bit. More details on the RPM installation page.

Addressed tickets between v9.1.0 and v9.2.0-alpha1:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.1.0..v9.2.0-alpha1 | sort -k 3 -t ':'

Addressed tickets between v9.2.0-alpha1 and v9.2.0-beta1:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.2.0-alpha1..v9.2.0-beta1 | sort -k 3 -t ':'

Addressed tickets between v9.2.0-beta1 and v9.2.0:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.2.0-beta1..v9.2.0 | sort -k 3 -t ':'

Addressed tickets between v9.2.0-beta1 and v9.2.0:

git log --pretty=format:"* changeset:%h | %s (%an)" v9.2.0..v9.2.1 | sort -k 3 -t ':'

Acknowledgements to the contributors of this release:

git log --pretty=format:"%an" v9.1.0..v9.2.0 | sort | uniq -c
     38 Alexandru Toader
     14 Alex Dumitru
     43 BangPH
      2 Danut Rusu
     49 Dimitar Misev
     14 George Merticariu
      4 Georg Semmler
      5 Peter BaumanN
      5 Vlad Merticariu
     42 Vlad Zamfir

Version 9.1

Major new features:

  • new client/server communication protocol
    • the current RNP protocol is deprecated now, and the new protocol will become the default in v10.0
    • configure with --enable-rasnet to use the new protocol
  • support for WCS Processing and WCPS 1.5 (informal naming, indicating transition from WCPS 1 to forthcoming WCPS 2)
    • new parser with significantly improved error handling, among others, available at service=WCS&request=ProcessCoverages&version=1.5
    • the old parser is still default in 9.1, because of small backwards incompatibilities that the new parser introduces
  • support for WCS-T 2.0 insert, delete and update
    • new python import tool for petascope, wcst_import (an alternative to rasimport based on the WCS-T standard)
  • new WCS 2.0 web client, supporting the core as well as all extensions implemented by rasdaman
  • full support for WMS 1.3 in addition to the already supported WMS 1.1
    • in conjunction with WCS-T, WCS coverages can easily be published as WMS layers with InsertWCSLayer requests
  • null/nodata values support, ported from rasdaman enterprise
    • it is necessary to run update_db.sh, to enable null values in an existing rasdaman installation
  • type management can be done flexibly via rasql queries now, and is not limited to using rasdl
  • Enhanced "induced" general condenser in rasql
  • R package for rasdaman (RRasdaman)

Upgrade from 9.0.x

To upgrade from rasdaman 9.0 to 9.1, it is necessary to upgrade the database by running update_db.sh. This is a backwards compatible change, i.e. rasdaman 9.0 can still be run on the same database after the update.

Note: SQLite/Filestorage is the default backend now; to use PostgreSQL when compiling from source, use configure option --with-default-basedb=postgresql

Final release Version 9.1.0

git log --pretty=format:"* changeset:%h | %s (%an)" v9.1.0-beta2..v9.1.0 | sort -k 3 -t ':'

Pre-release Version 9.1.0-beta2

This pre-release version brings several features and improvements:

  • R package for rasdaman (RRasdaman)
  • Full WCS-T Update support
  • Utility to insert georeferenced data via WCST (an alternative to rasimport)
  • Optimizations and UX improvements in rasnet, the new protocol in rasdaman
  • Enhanced "induced" general condenser in rasql
git log --pretty=format:"* changeset:%h | %s (%an)" v9.1.0-beta1..v9.1.0-beta2 | sort -k 3 -t ':'

Pre-release Version 9.1.0-beta1

git log --pretty=format:"* changeset:%h | %s (%an)" v9.0.5..v9.1.0-beta1 | sort -k 3 -t ':'

Version 9.0

Changes and new features

  • rasdaman Array DMBS
    • tile ids are now stored as long int in the database rather than double.
      • note: this is a backwards incompatible change over rasdaman 8.x, i.e. once update_db.sh is run, the database (RASBASE) will be converted to the new format and will be only readable by rasdaman 9+
    • new 'select version()' query in RasQL, to return the currently installed version of rasdaman
    • enhanced logging: catch segfaults in the rasdaman server and print stacktraces in the log (only works if --without-debug-symbols has not been specified at ./configure)
    • fine-grained locking of tiles in rasdaman, allowing parallel ingestion for example

  • Petascope Web servlet
    • the petascopedb [PetascopeDevGuide metadata database schema] has been completely redesigned to work in cooperation with SECORE and to better follow the GMLCOV model, extending support for CRS-aligned irregularly gridded coverages.
      • note: Petascope 9.0 is incompatible with the old petascopedb schema, and requires upgrade ('update_petascopedb.sh')
      • the upgrade supports both migration of existing coverages and restore of pre-upgrade db snapshot
      • some first stored procedures are available for devs and advanced users
    • servlet path has been changed to rasdaman/ows/wcps, rasdaman/ows/wcs, etc., and the war file deployed in Tomcat is now rasdaman.war
    • Full OGC WCS 2.0 Core compliance for coverages with rectified/referenceable grid and multipoint geometries.
    • WC*S subsets now support asterisks * and ISO8601 timestamps.
    • support for Index CRSs for unreferenced nD datasets
    • support for compound CRS index, spatial, temporal, or spatio-temporal, with 1+ temporal axes
    • support for CRS slicing (interim @<axis_left1>,__,<axis_leftN> notation).
    • WCS service and service provider metadata is moved from Java templates to the database.
    • GML/GMLCOV coverage metadata is richer and more flexible: many GML fields are configurable in the database.
      • fixes in GML encoding for coverages (especially CRS and grid axis orders)
      • minimum bounding box is returned
      • configurable OWS metadata enablement
      • configurable SWE metadata (NIL values, allowed intervals, label, description, definition URI)
      • handling of coverage points' sample spaces (point is area on regular axes, point is point on irregular axes)
      • CRS coordinates to follow the axis order defined in its definition
      • fix domainSet/rangeSet point order agreement
    • safe decoupling of WC*S coverages and rasdaman collections: one coverage is represented by a single marray
    • initial support for [MultiPointCoverages multipoint coverages] (to enable this feature PostGIS 2.0+ is required, otherwise it will be disabled.
    • fix WCS scaling, range subsetting and processing extensions.

  • rasgeo component
    • revised rasimport/raserase working with the new 9.0 petascopedb schema (thanks to Alex Herzig) and supporting irregular series of images (see also the [RasgeoUserGuide user guide])

  • SECORE resolver
    • [SecoreUserGuide SECORE] only supports URLs now, URN support is removed as OGC URNs have been deprecated for a long time already.
      • note: this is an incompatible change, so an existing SECORE database must be removed (rm -rf $CATALINA_HOME/webapps/secoredb/*), so that a new database containing only URL identifiers can be initialized.
      • two separate dictionaries of definitions: the EPSG and a user-defined one, now containing a first set of Index and Temporal CRS definitions.

  • miscellanea
    • more powerful systemtests, with oracles support, known failures skip and scripting.

Quick upgrade guide (for rasdaman 8.x)

  1. $ rm -rf $CATALINA_HOME/webapps/secoredb
  2. $ autoreconf -fi && ./configure [...] && make clean && make && make install
  3. edit and update Petascope ($RMANHOME/etc/petascope.properties) and rasgeo ($HOME/.rasdaman/rasconnect) configuration files (note that rasconnect has two new parameters, see the example configuration)
  4. $ update_db.sh
  5. $ update_petascopedb.sh

NOTE for PostgreSQL < 9.1 users : migration of existing coverages in petascopedb assumes backslashes are treated literally in string literals. While this is the default behavior in versions ≥ 9.1 of PostgreSQL, this must be manually set in prior versions (see #675). Hence, before executing update_petascopedb.sh you should run:

petascopedb=# ALTER ROLE petauser SET standard_conforming_strings = on;

(The problem has been addressed already in the development branch and will be available in rasdaman v9.0.1)

Fixes

#5
Partial update through rasj fails
#169
rasimport to be synchronized with incoming new petascopedb schema
#188
URN-based identifiers recognized but not translated to URL in the definition
#222
WCS/WCPS axes to be requested by NAME, not by TYPE
#233
Some wrong definitions are silently ignored
#267
Tiling with rasimport
#270
Deprecate old servlets in petascope
#276
time handling with SECORE and temporal CRS
#280
SECORE works only at /def
#307
external names should use rasdaman, not petascope
#326
segmentation fault on insert
#327
lock manager for rasdaman
#332
Support for time in GML coverage output
#333
2Gb file limit
#335
Coverage iterator not translated properly to rasql on WCPS trimmings
#356
SECORE does not report exception when an invalid parameter name is set on a non-parametrized CRS
#357
Implement `pow()' WCPS function
#369
Systemtest support for SECORE
#376
Aggregation operations in petascope don't work on multiband covs
#377
WCPS doesn't consider axis labels in scale operation
#382
Automated database updates in SECORE
#385
Illegal optional parameter read as flattening option
#386
Error when a Parametrized CRS targets a CRS via URN
#387
Query on coverages with different domains is unusable
#389
SECORE exception when mandatory parameter is missing
#390
Compound CRSs with a parametrized CRS
#391
Missing new line in CCRS output
#407
WCPS parsing error with scalar * coverage expression
#417
tile cache should be more robust
#419
document tile cache in inst-guide.doc
#431
Update supported base DB to postgres 9.0+
#432
verify WCS extension list in capabilities document
#448
WCS 2.0 exception code
#458
Test engine for tickets
#459
WCS GetCoverage broken
#460
establish documentation for 9.0
#470
support asterisk in trim operation
#473
Add textual comparison to systemtests (WCS et al)
#474
Trimmed URIs
#475
Coverage iterator over double/date intervals
#476
Null values not shown in coverage description
#477
nodata should be 0 by default
#478
WCPS switch tests fail
#479
Handling of NaN values in rasql
#482
Point query on non-materialized data should return 0
#483
editorial improvement of petascope.properties
#484
systemtest import functions not to rely on database IDs
#487
Configuration manager does not include admin credentials
#489
remove generated files from version control
#492
inv_tiff fails with rasj
#493
Complex constructor doesn't accept integers
#494
feature_PetascopeSecore to me merged
#496
Trac to accept git-bundles
#498
Oracles for WCS requests on Multipoint coverages
#499
Import script for Multipoint test dataset to use common systemtest configuration
#508
UML schema for Petascope
#512
PostGIS requirement, moved on branch feature_Multipoint
#515
UoM code for pure numbers
#518
KEY_ constants should be public in ConfigurationManager
#519
Do not hardwire kahlua host in petascopedb init
#522
HTTP code of WC*S exceptions to be properly set by Petacope
#523
Exception to be thrown on bogus medatype in a WCS request
#524
Petascope to throw exception on duplicate WCS subsets
#525
WCPS exceptions for invalid subsettings not to get lost
#526
Error when petascopedb is not updated to ps9
#528
release rasdaman 9.0.0-beta1
#530
WMS utilities to be re-synchronized with new petascopedb schema
#531
Wrong geo-metadata for mean_summer_airtemp
#533
Strings in subsets
#534
update_db.sh to use configured PostgreSQL port
#537
"Add a new entry at this level" functionality does not show up anymore
#538
Revert BaseX.jar to pre 7 version
#539
Add required OGC CRS defs in SECORE for systemtests
#540
gml:description in ParametrizedCRS definition
#544
WC*S tests with geo binary output encoding fail
#545
List of SECORE hosts in petascope.properties
#546
rasdaman version in petascope.properties
#547
encode fails for multiband of any type > char
#548
Allow compilation with debug symbols only
#549
Enable getting rasdaman version in a select query
#551
WCPS responses do not add EOL at the end of the response
#552
PostGIS queries
#553
SECORE should not hardcode the host in the def identifiers
#556
SECORE HTTP exit codes for exception reports not to be 200
#558
WCS range extensions XML parser to expect rangeSubset as root
#559
SECORE to reject queries with almost valid code
#560
gmlcov:metadata not following XMLSD of coverage description
#561
WCS XML POST body not to be prepended by "request="
#562
Throw exception when required parameter is missing in a WCS request
#563
SOAP always return 200 exit code
#565
Coverage description template for non-gridded coverages to be established
#566
UoM for range quantities not to be used as UoM for CRS axes in MultiPoint coverages
#567
HTML documentation needs to be integrated
#568
NullPointerException when axis does not exist in CRS definition
#569
Missing namespace for referenceable grids in CoverageDescription
#570
UoM for multipoint domainSet
#572
Fix GML for referenceable grids
#573
SWE metadata from database not to be ignored
#574
Smoother migration from 8.5 to 9.0
#575
Check for dblink installation
#578
rasdl fails on CentOS 6.4
#583
Add patchmanager code to the rasdaman repo
#604
Envelope bounds with Index CRSs
#607
Scaling extension for XML requests to be inside wcs:Extension
#616
petascope Makefile fails to find rasj.jar
#619
secore not found during install
#623
Memory leak in lockmgr
#625
target tiles still locked after commit
#631
Duplicate code for coordinates to grid indexes conversion
#634
Implement the Processing Coverage extension
#638
CSV encoding problem with multiband collections
#639
Time subset conversion to account for offset vector
#645
Improve update_petascopedb.sh
#647
Improve detection of northing-first CRS during petascopedb migration
#648
Migrate origin to centre of sample-space
#649
Dynamic output grid coverage type
#662
Petascope XMLDescribeCoverageSchemaTest fails
#668
Migration starts on new petascopedb

#79
integration with Enterprise Linux Community
#102
Petascope WCPS form processing (Java XML parser) has error.
#108
Segmentation fault when accessing a non-existent collection via GDAL
#119
casting fails with user-defined types
#125
rasgeo expects same user for postgres and rasdaman
#132
Selecting struct component by name fails
#133
Problem in Petascope to serve simultaneous request
#152
XQuery interface
#165
Specify rasimport connection on the command-line
#206
WCS error handling needs cleanup
#210
from clause in rasql select statements should be optional
#221
Include WCS conformance test into systemtest
#242
INSERT should return OID allocated
#245
Update and select rasql queries distinction
#255
Parameters for 'areas of interest' tiling not parsed
#257
raswct event names as constants
#258
raswct slider should support discrete data
#259
integrate WCPS into the WCS name space
#281
WCS GML response when all dimensions of a coverage are sliced
#301
Default tiling in rasdaman is only applied on 2D objects
#310
decouple coverage and collection names, determine coverage type dynamically
#314
Add metadata to CoverageSummary in GetCapabilites response.
#342
Memory leak detection
#347
Petascope returns wrong bounds with CRS:1 subsets
#365
expand parameter should expand everything by default
#366
Invalid WCS 2.0.1 GetCapabilities response (Rasdaman 9.0.3) was: Invalid WCS 2.0.0 GetCapabilities response (Rasdaman 8.4.1)
#394
Provide clear error message when WCPS query exceeds coverage bounds
#410
rasserver silently shuts down when a port is already in use
#412
configure script does not check for bison being installed
#430
establish automatic nightly builds for rasdaman.org master branch
#434
Cast doesn't work for constant mddExpr
#442
Occassional error on rasimport
#450
Test rasserver with limited amount of memory
#451
Profile petascope regarding RAM usage
#456
Petascope should not escape the + sign in the format parameter
#462
Classes r_Bag and r_List from API document don't actually exist?
#464
Update logging facade SLF4J to 1.7.5 or above
#468
wms-import utilitites to allow connect file as parameter
#490
rasmgr startup output corrupted
#495
Optimizing Pointcloud Java Code and Database Queries
#497
Slicings for Multipoint coverages
#521
WCPS Slicings for Multipoint coverages
#535
WCPS convertTopixelIndices() function needs refactoring
#536
Licence headers need update
#541
Remove psycopg dependency in systemtest
#550
SECORE to ignore GML xmlsd during equality checks
#554
Add XML, SOAP and REST tests in WCS systemtests
#555
SECORE to encode predefined entities in responses
#557
Change CRS for Parksmall coverage
#571
Create a Bbox object for multipoint coverages
#576
Missing check on sdom response
#577
Remove double transaction warning from rasdaman
#579
header comment in GML response
#586
Remove temporary file creation in CSV converter
#587
inv_tiff segmentation
#588
Casting problems with RasQL's CSV encoding
#591
Mapping a cast to boolean to RasQL
#592
Cast to bool in RasQL
#593
WCPS not case sensitive on some keywords
#603
Subsets are not transformed to indexes when arithmetic expression is used
#610
Missing mapping between WCPS and RasQL primitive data types
#621
Tile locking performance issue
#622
rasdaman 9.0 fails when the database is not update
#626
WCS incomplete supported formats listing in service capabilities
#630
Enable optional compilation of the lockmanager
#633
petascope_insertdemo.sh fails
#635
Document SELECT INTO
#636
Grid origin to be centre of point sample space
#642
make check/clean for the systemtest has a bug
#654
Document migration procedure
#658
Silent division by zero
#661
rasgeo constraints to Postgresql >= 9
#664
Lenient BigDecimal division
#670
NetCDF format extension is unused
#672
WMS path was not synced
#673
CSV conversion for complex numbers
#674
Migration of gmlcov metadata
#675
Portability problem with PostgreSQL prior to 9.1 on literals
#676
Wrong root document selected when fetching UoM definition
#677
Petascope not to rely on a static set of supported naming authorities
#681
Coefficients missing on GetCoverage response when irregular axis not trimmed
#682
Wrong bbox when irregular axis is trimmed and subset bounds do not coincide with a point
#683
Timestamp WCPS tests failing
#684
Segfault on aggregation over large composite types
#685
petascope.properties initialization problem
#686
CellDomain is using lexicographical comparison of int indexes
#687
Wrong timestamp to time numeric conversion when vector is not time versor
#688
Wrong usage of tuple and coordinate separator in range set
#689
Importing BGS sample tin data into postgis
#690
WCPS Subsetting/Slicings for TIN coverages
#691
WCS Subsetting/Slicings for TIN coverages
#693
C++ examples fail to compile
#694
Testdata is wrongly dropped on every run
#695
Postgis version detection fails on debian
#696
WCPS multipoint tests are randomly failing
#697
.deps/insertppm.Po: No such file or directory
#698
petascope_insertdemo.sh improvement
#699
Update script for petascopedb to handle user interrupts
#700
WCS tupleList is in column-major whereas it should be in row-major
#702
Postgis is installed but still not found
#704
Document dbinfo() function
#709
CRS parameter for encode() function
#713
petascope doesn't close database connections
#714
SECORE ignores service.url in the secore.conf
#717
WCS GetCapabilities response is invalid if phone specified in ps_service_provider
#719
ps_service_provider has column contact_instructions but values is not output in WCS GetCapabilities response
#720
ps_service_provider has column contact_role that should be constrained against a dictionary of values
#727
raserase when metadata deletion fails
#729
Miscategorized debug messages in petascope
#730
GetCapabilities fails if a coverage is registered in petascope but not in rasdaman
#734
Typo in constraint name
#735
GetCapabilities pings rasdaman for every coverage
#736
WCS test 42 failing
#737
unable to connect rasdaman 9 to a remote RASBASE server
#738
Compilation fails with bison 3/gcc 4.8
#739
Occassional Unknown node for ScaleCoverageExpr expression: trim error.
#742
Coverage metadata overwritten in range constructor
#743
Do not set any default nodata value
#744
Enable GML in JPEG2000 encoding in rasdaman
#745
Petascope to serve GML in JPEG2000 files
#746
1601-01-01 is ANSI date 1, not 0
#747
Parsing subtraction bug
#748
Wrong ranges for float/double min/max in ps_intervals
#750
Check if secore_urls is present in petascope.properties
#751
Substitute readline dependency with libedit
#752
Dependency on postgres intarray module
#753
rasql should check for write permissions
#754
Add systemtest coverages for floating-point typed datasets too
#756
Band names in Petascope
#759
WCPS encode behaviour dependent on capitalisation of format specifier
#760
Support grid coverages
#761
Licenses for petascope libs
#762
systemtest to check CoverageSummary elements of a WCS GetCapabilities response
#763
WCS response not sliced upon slicing
#764
WCS conformance testing
#765
WCS 2.0 Capabilities document validation fail
#766
SECORE should have the security constraints commented out
#767
band names shown in dbinfo() differ from designated during rasimport
#768
Implement the WCS interpolation extension
#769
WCS Scaling extension to update internal grid topology in the XML response
#770
Add Index 4D/5D CRS
#771
RPC server should be disabled by default
#773
WCPS scale operation not to ignore single-cell trimmings
#774
RasQL scale : the result is no interval
#775
Add primary keys to petascopedb tables where not defined
#776
WCS scaling operation dosen't work with georeferenced coverage
#778
CRS:1 conversion not transmitted to WCPS
#784
Control lockmgr via configuration parameter in rasmgr.conf
#785
Implement WCS Range Subsetting extension
#786
WCS Scaling extension does not take slicings into account
#787
WCS scaling extension wrongly maps scale-factor to WCPS
#788
WCS scaling extension wrongly maps scale-factor to WCPS
#789
Get ordered vector coefficients
#795
Connection closed on parallel WCS requests when one query fails
#796
Wrong WCS range subsetting conformance class in capabilities
#797
GMLCOV conformance class(es) missing in WCS capabilities
#798
Missing WCPS core conformance in WCS capabilities
#799
Add configuration parameter to override declared WCS service URL in capabilities
#800
mention CC-BY-SA in documents
#801
Postgres cannot index huge text strings
#802
usage of ps_descriptions table in petascope
#803
systemtest status on bismuth
#804
Update SECORE with accepted Time+Index CRS URIs/defs
#805
EPSG 8.5 release: update SECORE db
#807
ps_extra_metadata for ows type metadata incorrectly inserted into GetCapabilities (v9.0.3)
#809
case_expression test fails
#810
Put rasj.jar in a public maven repository
#811
Substitute libsigsegv with non GPL code/lib
#814
Secore deploy script does not include UserDictionary.xml
#815
Port filestorage support with sqlite
#819
Resolving hrefs in secore doesn't work across databases
#820
pdf manuals are not installed
#823
OGC WCS test compliance
#828
Mismatching HTTP status codes returned by petascope
#832
QGIS WCPS plugin
#833
netcdf() cannot encode RGB
#839
INSERT INTO fails in benchmark mode
#840
Filestorage driver should be synced with lockmgr changes
#841
Update RPM rasdaman.spec to specify filestorage dir
#847
Petascope version number
#852
Eliminate PL/pgSQL functions from petascope
#853
nary operation doesn't support binary operation
#854
Docker script
#855
autoreconf 2.69 produces warnings
#856
rasdaman warnings with gcc 4.9
#859
turn on all warnings when compiling rasdaman

Patch Version 9.0.5

git log --pretty=format:"* changeset:%h | %s (%an)" v9.0.4..v9.0.5 | sort -k 3 -t ':'

Patch Version 9.0.4

git log --pretty=format:"* changeset:%h | %s (%an)" v9.0.3..v9.0.4 | sort -k 3 -t ':'

Patch Version 9.0.3

git log --pretty=format:"* changeset:%h | %s (%an)" v9.0.2..v9.0.3 | sort -k 3 -t ':'

Patch Version 9.0.2

List generated with:

$ git log --pretty=format:"* changeset:%h | %s (%an)" v9.0.1..v9.0.2 | sort -k 3 -t ':'

Patch Version 9.0.1

List generated with:

$ git log --pretty=format:"* changeset:%h | %s (%an)" v9.0.0..v9.0.1 | sort -k 3 -t ':'

Version 8.5

Fixes

#15
condense max and min bug
#131
rasgeo imports MDD with wrong spatial domain if nm_meta not present
#320
Adding parameterized definitions doesn't work
#363
Enhancement of petascope regression test suite
#395
Access Denied Error with 8.4.2-1 RPM
#400
Rasimport of data using unsigned int 32 bit is scrambled
#425
systemtest check for collection existence is wrong
#426
parent incorrectly set in query tree
#427
directql has only write access

#346
use of case - when statement (sequential evaluation) for dealing with no-data in log() expressions
#435
Change CASE to work with expressions in the THEN clause
#471
petascope_insertdemo.sh test for coverage always fails

#319
rasimport resets axis names after updating a cube
#605
Wrong bounds of mr and rgb systemtest coverages
#608
petascope test data not loaded for 8.5
#609
Wrong data type for systemtest coverages
#627
CRS support with rasimport
#666
Wrong GeoTIFF output for WCS subsetting

Patch Version 8.5.3

List generated with:

$ git log --pretty=format:"* changeset:%h | %s (%an)" v8.5.2..v8.5.3 | sort -k 3 -t ':'

Patch Version 8.5.4

List generated with:

git log --pretty=format:"* changeset:%h | %s (%an)" v8.5.3..v8.5.4 | sort -k 3 -t ':'

Version 8.4

Fixes

#16
condense count
#33
remove "#ifdef NO_OFFICIAL_RELEASE"
#77
Data exchange format wrong file name extension
#112
wcs2.0.0_req11_kvp
#113
wcs2.0.0_req17_postxml
#114
wcs2.0.0_req40
#115
Document new parameter in TIFF conversion
#117
inv_tiff broken in rasdaman 8.3
#118
rasdaman debian package
#120
Drop/Erase collection fails after several data has been loaded
#122
Error retrieving data from fragmented collections
#123
Updating an MDD which intersects with the source array
#124
Error when selecting non-materialized parts of an mdd
#126
Create an insertdemo.sh script for petascope
#128
segmentation fault in rasserver causes oid operator failures
#129
Error parsing insert TIFF query with inv_tiff()
#137
created collection odd behaviour (different answer for the same query and error in drop collection)
#138
x and y axes swapped inserting 2D grid into rasdaman
#139
rasdl basetype deletion issue
#140
rasdl -p complex type output misleading for mdd and set types
#143
WCPS abstract syntax. Error with scale operation
#144
Problem to scale data with more than 2 dimensions using a scale factor
#145
Petascope enhancement: WCPS getMetaDataExpr
#146
WCPS parser does not raise exception when parenthesis are missing
#147
netcdf conversion output is not properly encoded
#148
rasql scale operation issue - segmentation fault
#151
trim operations in queries with marray causes error message (401)
#154
Proprietary Sun API (JPEGCodec) used inside petascope.wms
#156
make install always overrides rasmgr.conf
#158
SECORE error with (some) Vertical CRS
#159
SECORE: keys should be case insensitive
#160
sdom(c)[0].hi returns wrong result
#161
Setting tiling layouts/indexes needs testing
#162
filter not work
#163
Access WCS 2.0 via ArcMap
#164
Export GeoTIFF/JPEG2000 with WCPS
#166
RPM: setup database for rasimport
#167
Rename insertdemo.sh to rasdaman_insertdemo.sh
#168
implement crs, scaling and interpolation projection functions
#170
Petascope GetCapabilities response is invalid (schema)
#171
Petascope GetCapabilities response is invalid (ServiceMetadata)
#172
WCPS ConstructCoverageExpr
#175
WCPS: image CRS should be assumed in subsets when no CRS is specified
#176
petascope.wcps.* packages to use String constants
#177
1D and 3D coverage metadata results in wcs GetCapabilities exception
#178
rasdl doesn't consider the --connect parameter
#179
Add possibility to specify connection user/pass in rasmgr.conf
#181
systemtest doesn't run properly
#182
Can't import RGB image as slice of 3D object
#183
SECORE only recognizes URN identifiers of new uploaded definitions
#184
List of coverages for WCPS requests not updated unless restart Petascope
#189
rasimport: Segmentation fault (core dumped)
#190
C++ Developers Guide (possible) typos
#191
Petascope response mimetype is text/plain
#192
Runtime error if don't supply subset parameters.
#193
Petascope doesn't understand percent encoded query params
#194
WCPS generalCondenseExpr syntax not recognised
#195
Petascope doesn't parse float constants correctly
#196
WMS fill creates several levels of the same size
#197
WMS scripts doesn't pass proper options to fillpyramid
#198
Use config.h
#199
rasdaman broken on big endian systems?
#201
netCDF should be able to import dimension variables
#202
WCPS tests failed
#204
WCPS scale fails when there is slicing
#205
Alpha channel in png convertor
#212
Graphical database schema for petascope
#213
When subsetting in WCS the bbox is not updated
#217
NETCDF export broken - file has incorrect orientation
#218
rasimport segmentation fault
#219
WCPS overlay operator works wrong way round
#223
rasmgr writes ill-formatted rasmgr.conf file
#224
Petascope WCS returns invalid GetCapabilites response
#229
Include git commit id in rasdaman's version
#230
WCPS count() delivers wrong value
#231
Replace rasimport with rasql in wcps tests
#232
SECORE does not find configuration files with Glassfish
#236
KV-paired CRS gets truncated during equality test
#238
SELECT INTO in rasql
#239
Handling of new client connections
#244
Dashes should be allowed in collection names
#247
WCPS domain() returns empty
#248
gml:GridEnvelope upper-corner has minimum value to 0 when subsets are requested
#249
Problems with starting rasdaman server on rascontrol
#250
tRNS flag not working in latest version
#251
Header files not completely installed
#253
fill_pyramid.sh fails when no --tasplit given
#261
raswct docs bugs
#262
Petascope can't handle curly brackets in an extendExpr query
#263
WCPS extendExpr implementation is not correct
#264
petascope should have some memory safeguard
#266
Petascope use of sdom
#269
Offset calculation in DbMetadataSource class is wrong
#271
Index table allows too small number of entries
#273
range subsetting on single band
#274
WCS scaling fails when there's subsetting
#275
Incremental updates for rasdaman database
#278
Definition of available functionality with respect to standards and software
#279
Wrong example in ql-guide
#283
GetCapabilities response for non-2D coverages
#284
gml:origin and gml:offsetVectors are wrong for non-2D coverages
#285
WCPS going through PetascopeInterface fails
#287
gmlcov:metadata not showing up anymore in DescribeCoverage responses
#288
WCPS segfaults when using invalid axis name
#289
Update sequence for table ps_crs in petascope creation query
#294
use a default tiling with meaningful sizing when creating new objects
#295
WMS init and fill pyramid scripts fail when collection name is not the first one returned by RASQL select query
#296
Result of reload capabilities in WMS init script should be checked
#298
Support CRS:1 in a WCS request for the temporal axis
#299
start_rasdaman.sh sometimes fails to start rasdaman properly
#300
git commit id wrongly computed
#302
petascope should use encode() function
#303
Check $ use in variables and coverage defs
#304
Document dbinfo() function
#305
Incorrect WCPS test
#306
UoM ID (and not value) is shown in the WCS rangeType of a coverage
#324
initpetascopedb - error creating plpgsql language
#329
Packge rasdaman-8.4.0-rc.2.el6.x86_64.rpm contain invalid data
#330
tomcat user and initpetascopedb function in /etc/init.d/rasdaman script
#334
rasimport segmentation fault in RC2

#28
Installation Manual Errors (rewrite Manual please!)
#337
Petascope - Malformed status line with ExceptionReport xml file
#341
Petascope return wrong domainSet
#350
Wrong usage of getFetchSize() method in DbMetadataSource class
#351
fix typo in SECORE error message

#63
standard marray operation fails in system test
#157
array constant for rgb not working
#215
Petascope: XML schema validation should be optional
#256
raswct is limited to one WCPS service
#291
SECORE performance improvement
#318
SECORE distinct notation to retrieve raw definition of a parametrized CRS
#339
Default compilation of netcdf and hdf
#343
WCPS - getMetaDataExpr functions problems
#349
Performance of wcps query involving multiple overlays
#353
Provide SECORE user manual documentation
#359
Error translating to RasQL for complex WCPS query
#379
Regular tiling does not work for 3D+
#381
SECORE fails because of different GML namespaces

No results

Known Issues

#378
Interest tiling does not work for 3D+

Version 8.3

Known Issues

  • the make process breaks if no —war-dir option is specified in the ./configure step.

Server

  • compilation on OS X
  • rasgeo tool for GDAL-based image file import added to applications
  • rasdaman web client toolkit (raswct) has been added to applications
    • accompanying developer's manual can be found in manuals_and_examples/manuals
  • fixed returning wrong error code on exception in rasgeo
  • CSV formatter properly prints point queries
  • fix exporting data of base type uint8, int8, uint32, float, etc. to TIFF
  • added support for multiband TIFF images
  • synchronized RPM spec file
  • specific netcdf variable can be imported/exported, e.g. netcdf($1, "var=Base_reflectivity")
  • fix the default definition of the RPC server in rasmgr.conf
  • added —with-docs option to the configure script, to control whether doxygen documentation should be generated during installation.
  • added option for generating position independent code (PIC), usually necessary on 64bit systems for generating proper shared objects.
  • fix rasdl segfaulting when executed with invalid parametars
  • fix rasdl segfaulting when types with a specified extent are present in the database
  • fix type checking when updating with a file in some specific format. At the type-checking stage the actual type is not yet known as the conversion hasn't been evaluated.
  • fix rasmgr segfaulting on Debian Wheezy 64bit, gcc 4.6
  • fix make clean for java
  • add rview binary and modify Makefiles so that it's properly installed on make install
  • add includes for mkdir in rasmgr_config.cc

Petascope

  • moved to the applications directory
  • integration with the 52n WPS server
  • deploying via 'make deploy' instead of 'make install'
  • cleanup WCPS logging and fix performance bug
  • performance speedup by caching in WCPS
  • fix req 11, request version was not matched well.
  • the server should not fail if it fails reading some of the coverages
  • fix parsing of CRS in WCS 2.0
  • fix failed post req2 by including an ows:Constraint under OperationsMetadata in the Capabilities response
  • fix failed core req8 (URLs in OperationMetadata were same for different servlet locations), and failed core req12 (invalid KVP request didn't result with exception).
  • fix req17 by adding XML schema validation of XML requests.
  • perform initialization at servlet startup instead of at the first request.
  • fix installation of petascope settings
  • remove the version attribute of the ServiceMetadata element
  • update CRS identifiers
Last modified 22 months ago Last modified on Mar 15, 2023, 12:40:15 PM
Note: See TracWiki for help on using the wiki.