Skip to content

Releases: ohmg-dev/OldInsuranceMaps

v0.2.0

29 May 03:21
845ebe9

Choose a tag to compare

Summary

This release includes two new features:

  1. The addition of static XYZ tiles as a mosaic output
    • The application does not yet make use of these tiles for any frontend pieces.
    • For now, these tilesets can be created with a CLI command. In the future the creation will be automated or triggered from the frontend.
    • Lists of Maps on the frontend now have an XYZ column to indicate whether a tileset has been made for that map
  2. Social authentication through OpenStreetMap
    • Much more in the PR (see changelog below)

Upgrade steps

  1. Run uv run manage.py migrate
    • This should install the newly added python dependencies
      • django-allauth[socialaccounts] and topojson
  2. Run uv run manage.py configure-services to remake the celery systemd files
    • The new services are celery_main and celery_mosaic.
  3. Enable and start these services with provided instructions from the command
    • Make sure these new workers are used by watching logs during a prep or georef session
  4. Disable and remove the old celery service, which is just called celery.

To enable OpenStreetMap authentication, create a new OAuth 2 application in OSM and use that information in these two environment variables:

OSM_OAUTH_APP_CLIENT_ID="<etc>"
OSM_OAUTH_APP_SECRET="<etc>"

Bugfixes

  • navbar height
  • non-map modal toggle
  • import error in s3 utils
  • update the Atlascope footprints output to be in TopoJSON format

What's Changed

Full Changelog: v0.1.0...v0.2.0

v0.1.0

12 May 19:17
1fd8b46

Choose a tag to compare

Why release now? This is the first tagged release of the OldInsuranceMaps.net code base in a very long time. The only prior release, v0.0.0-lahmg, tagged the code base a couple of years ago in its final state as a georeferencing extension for GeoNode, before I began the process of turning it into a standalone web application. That transition has been 100% complete for a long time now, and the code has been has been running in production with daily usage for years, even as I continue to fix bugs and add features. Last year I began managing a second deployment of OldInsuranceMaps (a private instance for a research group) and it's becoming messy to deploy fixes and features across these two instances with just branch management. So: it is high time to begin tagging releases in a more regular manner.

Overview

OldInsuranceMaps.net is a web georeferencing platform that facilitates crowdsourced contributions to the creation of seamless historical atlas mosaics. The underlying software is slowly becoming more generic and applicable for any maps, not just Sanborn atlases. Currently though, the line between the core package, Online Historical Map Georeferencer (OHMG), and the implementation of it at OldInsuranceMaps.net, is still blurry.

Features

These release notes have a baseline description and some screenshots of the platform's main features, future release notes will just have changes.

Processing workflow

  • 3-step workflow for handling georeferencing activity
    • Prepare: split an image (if needed)
    • Georeference: create ground control points (GCPs)
    • Trim: add a mask to remove margins if desired
  • Handles common georeferencing complications
    • Multi-page atlases
    • Multiple insets or sections on the same page
      • Also useful for folded maps with gaps between sections
    • "Skippable" pieces that are too small to georeference well
    • Non-map content, like title pages and indexes
  • Session-based user input creates narrative of work performed
  • Staff/admin accounts can undo any sessions as needed

Split interface

  • Draw lines across a page to split it into different regions
  • Upon submission, the input page is split into multiple files based on the defined regions
  • Only necessary for pages that have insets or contain multiple maps
image

Georeferencing interface

  • Manual ground control point (GCP) creation (define pixel coordinates -> define lat/long coordinates, repeat)
  • Movable GCPs during editing
  • After 3 GCPs, live preview shows warped overlay when GCP added or moved
  • Polynomial and Thin Plate Spline transformations
  • Target projections (this feature disabled in OldInsuranceMaps.net; EPSG:3857 is fine for all Sanborns)
  • Reference layers
    • Automatically added "key map" if one has been defined within the atlas
    • Automatically added mosaic of all other georeferenced sheets in the same atlas
    • Snappable parcel boundaries if a parcel layer has been created for the atlas' locale
image

Mosaic creation

  • A "multi-mask" creation interface provides workflow for creating topologically sounds masks across many different layers
  • Each vertex is snappable so adjacent layer masks will always have contiguous boundaries
  • Vertices turn green when they are shared across multiple masks (easy visual inspection to find unsnapped vertices)
  • A dashed red layer extent outline is added to the interface when a user hovers a layer name in the right-hand panel
  • A server-side process can be run by a server admin to combine all masked layers into a single, downloadable geotiff
image

Map content management

  • A database structure that models maps and pages to support the georeferencing workflow
    • Map: a collector-style entry that can have one Document (for a standalone map) or many Documents (like a multi-page atlas)
    • Document: a single scanned image
      • A Document is "prepared" into one or more Regions
    • Region: a defined portion of a Document, or entire boundary this Document was not split during preparation
      • A region can be "skipped" to remove it from the georeferencing workflow, or marked as a non-map
    • Layer: a georeferenced Region
      • All layers are grouped by category into LayerSets
      • Layers can have a mask defined which is an extra geojson polygon used to hide the margins of the page
    • LayerSet: a thematic grouping of layers within a Map, like "main content" (the default), or "key map", or other categories
image

Import, export & web services

  • Server-side direct import of any items from the Library of Congress Sanborn Map collection
  • Server-side import of arbitrary files and non-Sanborn maps (requires local files or links and a CSV "manifest")
  • An inherited Importer class pattern to provide foundation for future custom import pipelines
  • Downloadable Cloud-Optimized GeoTIFF (COG) for any georeferenced layer
  • Downloadable COG for any multi-layer mosaics that have been created (based on "multi-mask")
  • Dynamic geospatial web services available for any layer or mosaic on the website
    • Services are provided by TiTiler and include standard formats like XYZ Tiles, TileJSON, WMS, and more
  • Annotations and AnnotationPages are generated that conform to the IIIF Georeference Extension and are directly viewable in Allmaps.org
image

Map viewer

  • Basic interactive map viewer aggregates all "main content" mosaics for a given locale
  • Opacity sliders allow multiple layers to be compared
  • "stateful" url params track x/y/z position of the map view as well as opacity of all layers
image

What's Changed

Read more

v0.0.0-lahmg

03 Aug 19:26

Choose a tag to compare

This is the first tagged release, and its purpose is to preserve the state of the code base at the end of my master's thesis at LSU: Creating a Public Space for Georeferencing Sanborn Maps: A Louisiana Case Study.

Specifically, this release holds the most complete integration with GeoNode/GeoServer--a core aspect of the original project, but one that is likely to be factored out or split into an independent project in the coming months.

Description

This repository consists, primarily of two custom Django apps, based on the geonode/geonode-project paradigm. One app, georeference is designed as a standalone plugin for GeoNode that allows users to georeference Documents in the browser, turning them into Layers. The other app, loc_insurancemaps holds the theming and custom integration with the Library of Congress Sanborn Map Collection, through its JSON API.

Dependencies

In addition to a full installation of GeoNode 3.2.1, the georeference app requires MapServer, and its user interfaces are built with Svelte.

Documentation

Full documentation is in the docs/ directory, and (much) more information about the project as a whole is in my thesis linked above. However, a detailed installation guide does not exist at this time (but it can be furnished upon request).