SkillAgentSearch skills...

Verrazzano

Streaming geospatial format conversion - SHP/GDB/KML/GPX/GeoJSON/etc.

Install / Use

/learn @staeco/Verrazzano
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align='center'> <img src='https://user-images.githubusercontent.com/425716/56301002-f33aef00-6104-11e9-828c-b7351d7c9b87.png' width='400'/> <p align='center'>Streaming geospatial format conversion</p> </p>

verrazzano NPM version Downloads Build Status

Install

npm install verrazzano --save

Notice: the unzip command must be available on the system in order to handle zipped inputs.

Supported Formats

Parsing

  • SHP
  • GDB
  • GPX
  • KML
  • KMZ
  • GeoJSON

Creation

  • SHP
  • GPX (Partial)
  • KML
  • KMZ
  • GeoJSON

API

from(format)

Returns a stream. Input is the file content. Output is GeoJSON Feature objects.

to(format)

Returns a stream. Input is GeoJSON Feature objects. Output is the file content.

Example

import fs from 'graceful-fs'
import geo from 'verrazzano'

// SHP -> GeoJSON Feature objects
fs.createReadStream('zones.shp')
  .pipe(geo.from('shp'))
  .pipe(through2.obj((feat, _, cb) => {
    // Do whatever you want with it here!
    cb(null, feat)
  }))

// SHP -> GeoJSON FeatureCollection
fs.createReadStream('zones.shp')
  .pipe(geo.from('shp'))
  .pipe(geo.to('geojson'))
  .pipe(fs.createWriteStream('zones.geojson'))

// GeoJSON FeatureCollection -> SHP
fs.createReadStream('zones.geojson')
  .pipe(geo.from('geojson'))
  .pipe(geo.to('shp'))
  .pipe(fs.createWriteStream('zones.shp'))

// SHP -> KML
fs.createReadStream('zones.shp')
  .pipe(geo.from('shp'))
  .pipe(geo.to('kml'))
  .pipe(fs.createWriteStream('zones.kml'))

Limitations

  • For zip-based geospatial formats it is not possible to operate on these in a streaming/memory efficient way (the manifest for a zip is stored at the end of the file). In these cases, a temporary file will be used for the duration of the stream.
  • In some cases where GDAL needs to be used, a temporary file will be used. Over time we will replace GDAL with pure JS parsers.

Related Skills

View on GitHub
GitHub Stars14
CategoryDevelopment
Updated1y ago
Forks5

Languages

JavaScript

Security Score

75/100

Audited on Jul 20, 2024

No findings