Skip to content
Joseph Ramsay edited this page Sep 11, 2017 · 4 revisions

Welcome to the AdminBoundaries wiki!

Overview

The AdminBoundaries project is designed to facilitate the import, from external data sources, of boundary data used primarily by the linz/AIMS and linz/roads projects.

Structure

Originally just python script addition UI and packaging code has been added to assist users and provide a means to bundle AdminBoundaries with linz/AIMS.

User Interface

The UI is intended to be run alongside an AIMS API installation. Since the AIMS API is built as a Java servlet on Tomcat and utilises Tomcat's security mechanisms, rather than forcing users to authenticate twice we decided to build the AdminBoundaries UI as a parallel Java servlet and deploy it alongside the AIMS API. Similarly, as the AIMS API is deployed separately from the AIMS DB component communication between the two is also achieved using Java DAO connectivity. Another advantage of building the AdminBoundaries UI was the ability to hijack this same connection functionality. Since the import functionality had already been built this was adapted to run as a server side script. In practise ths means that we employ two methods for database interaction. Database connection in python using psycopg2/ogr and via the UI (function calling mainly) using DAO.

Deployment

Data Import

The import script operates on CSV and Shapefile source files. These are imported using OGR into temporary tables for user inspection before being copied across to their permanent destination. This requested feature allows the user to compare the current with the temporary tables to ensure no data errors are being loaded. Minimal comparison functionality (provided by the linz/tableversion project) is supplied in the UI to indicate row counts for add/delete and update.

Installation

Packaging for AdminBoundaries is Debian based. Limited testing has been undertaken with packaging as it is not considered a priority. This is mainly because AIMS is not installed as a Debian package so it makes little sense to provide this with AdminBoundaries.

Clone this wiki locally