Release Notes
4.9.3
- Fixed bug when using S3 caching which could cause a crash in backfilling when tiles didn't exist in the cache.
4.9.2
- Disabling statsd completely if no STATSD_HOST is defined.
4.9.1
- Fixed bug where statsd durations were incorrectly emitted as seconds instead of milliseconds.
4.9.0
- Removed unused grids and grid_data tables on mbtiles exports
- Added a warning to readymap_restore if the backup file they specified doesn't exist
- Fixed bug where changing layer ids in the url bar could sometimes not navigate to the new layer.
- Added link to layer in collection editor.
- Fixed bug where WMS urls with query parameters would fail to fetch layers.
- Added multithreaded cache fetching for S3 so multiple tiles can be requested in one shot. This speeds up backfilling.
- Added retry with exponential backoff to tile rendering. This can improve stability on network connected layers like S3 based files or WMS servers.
- Replaced prometheus based metrics with statsd to simplify deployment.
4.8.2
- Added cleanup_export_jobs management command that will remove any succeeded ExportTilesJob that doesn't have a corresponding mbtiles file. This is useful for clearing out any jobs that have been manually deleted from disk.
- Limiting VizTracers stack depth so we can capture longer job traces without information being lost.
4.8.1
- Retrying tile generation jobs up to 3 times if they failed.
4.8.0
- Moved export workers to their own queue instead of being ran on the tiling queue. This let's smaller export jobs run even if there are large caching jobs running.
- Quiet down rq.worker and botocore.credentials to avoid spamming log managers.
4.7.1
- Fixed bug in mask layers UI
- Disabled backfilling on WMS layers so they will always pull down tiles directly from the server.
- Added health check endpoint at /readymap/health
- Update boto3 to get fix for retries on broken streams.
- Added clear jobs button on main job page to clear all jobs on the system.
4.7.0
- Fixed bug in feature importing where the columns were not updated until the service was restarts.
- Updated elevation backfilling code to work properly with layers with custom nodata.
- Fixed UI issue where feature tiling progress could stop refreshing on the page.
- Added new "Safe Generate On Demand" mode that will only generate tiles when you are close to the maximum resolution of a layer. This helps prevent cases where you can create a very complicated layer and the map view triggers a generation of a lower lod tile that can take a very long time and eat up all your CPU and memory.
- Added cache busting to map views so you are always getting the latest version of a tile.
- Updated job view to show the layer associated with a job.
- Added ability to search for jobs.
- Speed ups to mbtiles exports by using multithreading to read tiles from the cache.
- Using DEFLATE compression for elevation tiles instead of LZW to significantly decrease elevation tile size.
- Fixed bug in tiling jobs where tiles outside of of the selected extents could be generated.
- Added ability to retry failed/cancelled jobs.
- Backfilling imagey now respects the resample mode of the layer instead of always using average. This enables you to use landcover data with nearest sampling with backfilling.
4.6.0
- New profile view.
- Displaying total tile size of a layer.
- Fix bug where cancel buttons didn't work properly in processing dialogs.
- Added ability to export feature layers.
- Fixed bug where WMS 1.3 mercator layers had their bounding boxes reversed.
- Added new Slippy endpoint for clients that don't handled TMS style tile access and can't invert the y coordinates themselves.
- Updated base image to Ubuntu 24.04, reducing CVE's and updating dependencies.
- Increased default GDAL_CACHEMAX setting to 2GB to better handle mosaicing large datasets.
- Fixed issue where if you deleted a job while it was being updated by the cron job it could force the Django model inheritance tables to become out of sync.
- Fixed bug where the readymap_exporter wasn't explicitly closing it's database connections.
- Speed up mbtiles export by not running a full vacuum on the dataset when it completes.
- Displaying the job ID and any exceptions in Job List.
- Tiling jobs will fail early if one of their underlying tiles fails rather than quietly continuing, allowing you to debug problems with datasets faster.
- Speed up tiling by reducing frequency of calls to Redis to check for cancellation.
- Improved progress reporting for jobs.
- Added pagination to jobs and layer files views to deal with large numbers of files and jobs.
- Speed up directory listing on file manager by only getting geospatial properties of files on the detail view.
- Improved progress reporting in export mbtiles jobs so that they don't reset back to zero when moving on to the export step.
- Added EXTERNAL_REQUEST_TIMEOUT setting to keep slow external servers from hanging ReadyMap when proxying.
- Bug fix where /vsimem files were not being closed properly.
- Added an LRU cache to elevation layers to only keep the last 50 most frequently used elevation datasets open.
- Added job filtering by status.
- Moved all logs to stdout/stderr so that ReadyMap can be monitored using standard Docker logging tools rather than having to manage files produced in the container.
- Logging is now mostly done with structured logging to improve compatibility with Docker logging tools.
- Fix issue where data extents weren't present for XYZ layers, causing them to not behave well in Collection layers.
- Fix issue where webp layers we're writing aux.xml files to /tmp and not deleting them.
- Fix issue where cron jobs we're picking up the correct environment variables.
- Elevation collections layers now check the underlying no data value of any sublayers and treat those values as nodata when compositing.
4.5.0
- Slimmed down docker image
- Fixed sorting in Jobs view so that the latest jobs are displayed first.
- Fixed bug where the rq-exporter wasn't using the REDIS_HOST environment variable.
- Fixed bug where you couldn't reorder a layer in a collection after immediately adding it.
4.4.0
- Tracking of total tile storage per layer.
- Added support for Prometheus based monitoring at the /metrics endpoint.
- Added RM-Cache-Status header to indicate whether a tile request was a hit or not.
- Added new TILE_MEMORY_CACHE_SECONDS which will cache tiles to a small memory cache and serve them from the memory cache to reduce load on further upstream caches.
- Fixed bug where renaming a file was broken in file manager.
- Fixed bug where you couldn't remove a file from a local layer.
- Fix issue with memory consumption in generate on demand processes by recycling the WSGI process after so many requests are complete.
- More sensible defaults for GDAL_CACHEMAX to avoid blowing out memory when horizontally scaling out processes on machines with large amounts of memory.
- Added support for serving global-geodetic mbtiles generated by osgEarth.
4.3.2
- Fix for layer filtering
4.3.1
- Minor fix for unit tests
4.3.0
- Bug fixes.
- More flexibility in connecting to PostgresSQL. You can now specify all database connection properties as environment variables.
- Added ability to select multiple WMS layers to proxy.
- Removed non-working Google Earth share buttons.
- Changed mbtiles export to run a full multi-worker cache job before exporting tiles. Significantly increases export time for areas that aren't already tiled.
- Added new SECRETS_DIR configuration env var to support reading secrets generated by Kubernetes.
- Updated Dockerfile to be easier to apply security patches.
- Reworked API to use Django Rest Framework under the hood to support token based authentication.
- Added ability to configure the DATA_ROOT and TILES_ROOT settings via environment variables.
4.2.0
- Updated documentation for running ReadyMap on podman.
- Added view to see information about tiles and data storage availability.
- Support for mask layers for elevation collection layers.
- Speed up elevation collection layers that avoid unnecessary data fetching.
- Speed up tile generation for large sparse datasets by using a coarse grid to better filter out areas with nodata and avoid attempting to generate duplicate tiles.
- Improved default base map to use natural earth with labels.
- Added base imagery picker to let you switch between OpenStreetMap and the ReadyMap basemap.
- Speed up imagery and elevation tiling by using a faster spatial index for sorting files.
- Added new tile grid overlay display that allows you to see the XYZ and TMS coordinates of tiles.
- Added support for inverting masks in collection layers.
- Fix bug where the tile size selected in the user interface wasn't always respected.
- Better support for running ReadyMap behind a reverse proxy.
- Support for sentry tracing and profiling.
- Added ability to override nodata value for elevation layers.
- Warning when deleting a layer that is also part of a collection layer.
- Improved tile generation of collection layers to not use downstream layers cached data when forcing overwrite of the tiles to avoid getting potentially stale data that is in the downstream layers cache.
4.1.0
- Tiles are now deleted from the cache when a layer is deleted.
- Added ability to serve XYZ layers directly from disk.
- Updates to licensing code.
- Better resampling when creating lower levels of detail for imagery when backfilling.
- Fixed point rendering for feature layers
- Security fixes.
- Updates to TMS to include proper profile. Fixes support for Cesium for Unreal.
- Fixes for saving layers with post processing to jpeg.
- Added mouse coordinates in layer map.
- Added ability to filter layers by searching for their layer type (ie 'Collection') or data type ("Image" or "Elevation")
- Fixes for converting files from egm96 to hae.
- Added ability to keep datasets open for generate on demand processes with CLOSE_DATASETS=True env var. Warning: This can speed up generate on demand but at the expense of using more memory.
- Fixed issue with stair stepping elevation in mixed resolution datasets.
- Added support for proxying WMS 1.3.0 servers.
- Better UI for creating WMS layers.
4.0.0
- ReadyMap 4.0 is a major upgrade with lots of feature upgrades and bug fixes!
- New licensing system
- Updated all front and backend dependencies to modern, updated versions
- Upgrade UI to use Cesium to support a full 3d globe instead of just 2D as before.
- Much better support for Spherical Mercator layers across the entire system.
- Added ability to save terrain tiles in mapbox terrain rgb format.
- More options for cache outputs (TMS, Slippy, S3, etc).
- Added ability to export layers as mbtiles
- Added new MBTiles layer type allowing you to serve tiles from an existing MBTiles file.
- Completely new Job system that shows all long running jobs in a single interface.
- Massive speed improvements to the elevation layer tiling
- Implemented backfilling tiling algorithm that drastically speeds up tiling of large datasets by tiling them from the bottom up and reuses higher resolution tiles instead of source data to generate lower lods.
- Added masking and opacity support to collection layers.
- Added support for rendering remote vector tiles to the Mapnik layer.
- Added elevation collection layer support.
- Implemented resumable chunked file uploading to increase stability when uploading large files via the web interface and allow for multiple simultaneous file uploads.
- Added a metadata support to layers to allow you to provide key/value pairs that are included in any mbtiles exports.
- Added support for adding remote file sources via http and s3 to layers.
- Implemented new file processing framework to allow you to run operations on files like reprojection, translation and converting msl elevation files to wgs84.
3.13.0
- Minor gui updates.
3.12.0
- Updated version of Apache to 2.4.52
- Better formatting of file size display.
3.11.0
- Small change to allow apache and readymap logs to be written to a docker volume so they can persist after a container restart if desired.
- Reworked the generate on demand processing in ReadyMap to use two separate WSGI processes to avoid processing tiles using RQ. This let's you control how many resources are dedicated to generate on demand without having to hammer ReadyMap with requests polling to see if a tile is complete. This also lets us move back to using the forking RQ worker which should be more stable over long uptimes and require less restarts.
3.10.13
- Bug fix for elevation datasets that have actual NaN values encoded in them. These values will now be properly recognized as no data areas.
3.10.12
- Added correct Content-Encoding for vector tiles if they are compressed
- Initial support for monitoring ReadyMap using Prometheus.
3.10.11
- Fixed bug with WMS layers where saving a layer after creation would result in an old proxy option being incorrectly set. The proxy option has been removed and all WMS layers will now proxy by default.
3.10.10
- Added ability to set the temp upload directory via a docker-compose FILE_UPLOAD_TEMP_DIR environment setting to avoid using too much space on small VM's when uploading large files.
- Fixed axis order issue when importing rasters where sometimes the longitude and latitude would be reversed when computing data extents.
- Showing the approximate size in meters of the first tiling level of a feature dataset to help users pick appropriate tiling levels.
- Revamped the file extents view so it's more useful. You can toggle the extents on and off. The extents are now shown as filled transparent polygons with labels so that you can better understand overlapping files. You can move your mouse over files and a status bar updates to show you what file you are over.
3.10.9
- Fixed issue where using WMS layers mixed with local layers in a collection layer would result in bad data extents being reported from the layer.
3.10.8
- Fixed issue where WMS layers could not be saved after creation.
3.10.7
- Upgraded Sentry dependency to 1.1.0
3.10.6
- Changed the feature import fix from 3.10.5 to instead promote polygons to multipolygons and line strings to multilinestrings so that they will actually import all the features rather than skip them.
- Removed tiff from collection layer creation wizard since it's not a supported output format.
3.10.5
- Reworked feature import so that it will skip features that don't match the geometry type of the output layer. So if you import a shapefile that reports to be of type Polygon but it actually contains a mix of Polygon and Multipolygon the multipolygons will now be skipped rather than aborting the entire import process.
- Closing the underlying datasets when a tile generation is complete for local raster and elevation layers rather than keeping them open to serve subsequent requests to limit the amount of memory each tile generation process can consume. Layers with large numbers of files could previously result in very high memory consumption.
3.10.4
- Fixed bug where a tiling job would hang indefinitely if it didn't need to generate any tiles.
3.10.3
- Disabling sentry logging of GDAL errors to avoid spamming Sentry with unnecessary events.
3.10.2
- Added ability to set an image layers tile size at creation time.
3.10.1
- Added support for rendering vector tile layers using the Mapnik layer.
3.10.0
- Upgraded base docker dependencies to Ubuntu 20.04. Upgraded Django, Django RQ and Redis to latest versions.
3.9.7
- Fixed bug where the TMS service would report TileSets with incorrect hrefs when ReadyMap was configured with USE_LAYER_NAMES=True.
3.9.6
- Added new /archives endpoint where you can place zip archives and access their contents without extracting them via /readymap/archives/filename.zip/path/to/contents
3.9.5
- Disabled goaccess due to high memory usage and added new fix_srid.py script
3.9.4
- Fixed internal support for using Mapnik from python.
3.9.3
- Added redirect for /osm to /readymap/mbtiles/osm to attempt to fix clients connecting to the old /osm endpoint.
3.9.2
- Minor bug fixes.
- Added zoom level and mouse coordinates to map display.
3.9.1
- Fixed bug with starting RQ workers when launched with SENTRY_DSN set.
- Added RQ Sentry integration to support reporting worker errors to Sentry.
3.9.0
- Forced build with updated base dependencies
3.8.0
- Updating dependencies
3.7.1
- Bug fixes.
3.7.0
- Updated redis version to 3.0.0 and rq to 0.13
3.6.0
- Enabling verbose mode in pg_restore call in readymap_restore and removing input check in readymap_restore command.
- Removed /osm endpoint.
- Fix bug where in memory feature and tile services would get out of sync with the database.
- Gzipping feature tiles to save on disk space.
3.5.1
- Minor UI changes.
3.5.0
- Added support for Geopackage (.gpkg) extension
- Displaying max level of a layer in raster layer list.
- Better defaults in wizard when setting up image and elevation layers.
- Added goaccess server monitor and log viewer.
3.4.20
- Fixed cache busting for ReadyMap GUI javascript and styling.
- Usability improvements to the user interface.
- Search filter now searches by ID in addition to name and description
- Better formatting for date time fields.
- Fixed bug where preview map could be recreated multiple times on a page.
- Previewing elevation data using hillshading and color relief.