Giter Site home page Giter Site logo

elevation-spec's Introduction

Elevation Service Specification

Gross Specification

Feature Status
Works through Apache. Done
Uses HTTP GET from an endpoint. Done
If /proc/loadavg > 5 then return 503 Service Unavailable. Not Done
HTTP cache headers are based on the latest date of the data sources. Not Done

Data Sources

Source Currently Included
SRTM Yes
Nova Scotia DEM No
NYC DEM No
Canadian Elevation Data API No

Request Parameters

Name Description Example Status
bbox minlong,minlat,maxlong,maxlat bbox=4.06,50.86,5.13,51.33 Done
format ```rdf/xml n3 ntriples
scale Distance between points in metres. scale=90 Done

Note: format arguments are either format=rdf/xml|n3|xyz|png or controlled through an HTTP Accept header. Any error on this parameter is reported as 406 Not Acceptable.

Provenance Information

RDF Provenance information has to be created for each data source.

Status: Not Done

Example:

<prov:Collection rdf:resource="http://localhost/answer/xx">
  <rdf:type rdf:resource="void:Dataset"/>
  <prov:wasGeneratedBy>
    <prov:SoftwareAgent rdf:about="http://localhost/api/xx" >
      <prov:wasGeneratedBy rdf:about="http://localhost/api/about" />
      <rdfs:label xml:lang="en">Elevation Server API process ID xxxxx</rdfs:label>
      <prov:startedAtTime>2014-07-14T01:01:01Z</prov:startedAtTime>
      <prov:endedAtTime>2014-07-14T01:01:03Z</prov:endedAtTime>
      <prov:wasInformedBy rdf:resource="http://localhost/api/datasets/A"/>
      <prov:wasInformedBy rdf:resource="http://localhost/api/datasets/B"/>
      <prov:wasInformedBy rdf:resource="http://localhost/api/datasets/C"/>
    </prov:SoftwareAgent>
  </prov:wasGeneratedBy>
  <prov:hadMember>
    <!-- This point extracted from another dataset. -->
    <geo:Point rdf:resource="http://localhost/answer/point/xx">
      <geo:long>....</geo:long>
      <geo:lat>....</geo:lat>
      <prov:wasInformedBy rdf:resource="http://localhost/api/datasets/A"/>
    </geo:Point>
  </prov:hadMember>
  <prov:hadMember>
    <!-- This point extracted inferred by an algorithm and another dataset. -->
    <geo:Point rdf:resource="http://localhost/answer/point/xx">
      <geo:long>....</geo:long>
      <geo:lat>....</geo:lat>
      <prov:wasGeneratedBy rdf:resource="http://localhost/api/xx"/>
      <prov:wasInformedBy rdf:resource="http://localhost/api/datasets/B"/>
    </geo:Point>
  </prov:hadMember>
  ...
</prov:Collection>

Permanent Metadata

Permanent metadata hangs off the endpoint as a static document at http://.../endpoint/about.

Status: Not done

Example:

<prov:Activity rdf:about="http://localhost/api/about">
  <rdfs:label xml:lang="en">Elevation Server API Process</rdfs:label>
  <rdf:type rdf:resource="http://www.w3.org/ns/prov#Activity"/>
  <rdf:type rdf:resource="http://purl.oclc.org/NET/ssnx/ssn#Process"/>
  <prov:wasAssociatedWith rdf:resource="http://rdf.muninn-project.org/ww1/2011/11/11/Organization/Muninn"/>
  <foaf:name xml:lang="en">Elevation Server API Process</foaf:name>
  <doap:Version>2.0</doap:Version>
  <rdf:type rdf:resource="http://www.w3.org/ns/prov#SoftwareAgent"/>
  <rdf:type rdf:resource="http://usefulinc.com/ns/doap#Project"/>
  <doap:service-endpoint rdf:resource="http://localhost/api"/>
  <doap:developer rdf:resource="http://localhost/markfarrell"/>
  <doap:homepage rdf:resource="http://localhost/"/>
  <doap:blog rdf:resource="http://blog.muninn-project.org/"/>
  <doap:description xml:lang="en">The Elevation Server API will ...</doap:description>
  <cc:attributionName xml:lang="en">The Muninn Project</cc:attributionName>
  <cc:attributionURL rdf:resource="http://www.muninn-project.org/"/>
</prov:Activity>

elevation-spec's People

Contributors

markfarrell avatar rwarren2 avatar

Watchers

James Cloos avatar  avatar  avatar

elevation-spec's Issues

Use PostGIS if we're still able to adjust scale?

I'd recommend using PostgreSQL/PostGIS, taking elevation data from all of those data sources, massaging the data and storing it all in a spatial table of points. We could even include the original data source as a feature of each of the points, as well as the publication date of the data source, useful for doing provenance. We'd basically then have just have a CGI script that queries our geospatial database for all of the points inside of a requested bounding box and serializes the result set of points in a requested format. But my concern is that we would not be able to set the distance in metres between points, the scale parameter in our requests, should we choose to do this. I don't believe this is possible with PostGIS, unless I'm mistaken.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.