In a USGIN-style data systems, data sets are conveyed as OGC Web-Feature Services (WFS), and are served by a distributed network of data providers. Each of these services is cataloged in one (or several) metadata-aggregating services that conform to the OGC's Catalog Service for the Web (CSW).
This means that a user can find data sets by
This workflow requires the user to do a lot of work before they even get to see the data. After step #3, the user may realize that the data they wanted isn't in the particular WFS that they chose, and they'll have to repeat the process.
The end goal is to provide the user with a dynamic map that displays actual data, or at least enough of the data to give the user a better, more immediate idea of exactly what is available. This is an important target because its been shown that the first search priority for users searching for geoscientific data is location. We want a map that allows you to zoom to a location and see whats available there before you begin any thematic or keyword filtering to narrow down the results.
In order to achieve this, this software works as follows:
features/toGeojson.js
). Each feature from the WFS response is then stored in CouchDB as a GeoJSON object. These cached objects can be refreshed whenever required.This ElasticSearch index will provide an endpoint that can be searched by a thin, front-end client, such as one envisioned above.
git clone https://github.com/usgin/usgin-cache.git
cd usgin-cache
npm config set msvs_version 2012 --global
npm install
There is a bash script included that will download, configure, and run MongoDB for you. To use it, just type
chmod 755 run-mongo.sh
./run-mongo.sh
Mapping functions define how certain kinds of features are indexed by ElasticSearch. These function read GeoJSON data from CouchDB and convert it to an object that can be easily ingested by ElasticSearch. The properties of the converted object become the fields on which you can search.
For the NGDS, the idea is to write mapping functions only for USGIN Content Models of Interest. As an example, see the documented code describing the mapping of the aasg:ThermalSpring model.
Build documentation from code comments with [groc]. These docs live on the gh-pages
branch and are accessible here.
To rebuild them, follow these instructions:
git checkout gh-pages
git merge master
npm install
npm install -g groc
groc
tests/test-config-example.json
with the name tests/test-config.json
and edit it to match the connection details for your test database.npm test