Git Product home page Git Product logo

esri-dump's Introduction

OpenAddresses

Brief

A global collection of address, cadastral parcel and building footprint data sources, open and free to use. Join, download and contribute. We're just getting started.

This repository is a collection of references to address, cadastral parcel and building footprint data sources.

Contributing addresses

  • Open an issue and give information about where to find more address data. Be sure to include a link to the data and a description of the coverage area for the data.
  • You can also create a pull request to the sources directory.
  • More details in CONTRIBUTING.md.

Why collect addresses?

Street address data is essential infrastructure. Street names, house numbers, and post codes combined with geographic coordinates connects digital to physical places. Free and open addresses are rocket fuel for civic and commercial innovation.

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

License

The data produced by the OpenAddresses processing pipeline (available on batch.openaddresses.io) is not relicensed from the original sources. Individual sources will have their own licenses. The OpenAddresses team does its best to summarize the source licenses in the source JSON for each source. For example, the source JSON for the County of San Francisco contains a link to the County of San Francisco's open data license.

The source JSON in this repo (in the sources/ directory) is licensed under the CC0 1.0 Universal (CC0 1.0) Public Domain Dedication as described in the license file there. The rest of the repository is licensed under the BSD 3-Clause License.

esri-dump's People

Contributors

aaronpdennis avatar bertday avatar calvinmetcalf avatar gmaclennan avatar iandees avatar ingalls avatar tmcw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esri-dump's Issues

Add to npm

$ npm install -g esri-dump
npm http GET https://registry.npmjs.org/esri-dump
npm http 404 https://registry.npmjs.org/esri-dump
npm ERR! 404 'esri-dump' is not in the npm registry.

I'll use npm install -g git://github.com/openaddresses/esri-dump.git for now.

Does not handle ESRI "MultiPolygons"

It looks like ESRI JSON has no MultiPolygon object. MultiPolygons are of type "esriGeometryPolygon". The geometry object has an array of rings. The only way it seems to distinguish a MultiPolygon from a hole inside a polygon is a manual check for overlap, as used by the Terraformer library: https://github.com/Esri/terraformer-arcgis-parser/blob/master/terraformer-arcgis-parser.js#L170

I had no idea how big a headache converting an ESRI JSON file to a usable format would be...

Add test(s)

We should have at least a few tests:

  • can dump data to geojson (maybe use this sample layer from esri)
  • will fail on a layer with child/sub-layers
  • will fail on a non-ESRI REST URL

Premature file end, incomplete collection

Testing a source from the command line and the geojson ends before all of the records download or stream, leaving an invalid output file.

esri-dump http://maps.lex-co.com/arcgis/rest/services/AddressPts/MapServer/0 > output.geojson

Tested twice, and after adding a closing ]} I found incomplete collections and a different number of features. Click on the image to enlarge and see the record counts and the holes in the layer

2015-09-09-121617_1920x1054_scrot

ECONNRESET error from MapServer

I keep getting ECONNRESET errors on [MapServer export](( https://www.portlandmaps.com/arcgis/rest/services/Public/COP_OpenData/MapServer/112)). Having some trouble debugging it, maybe y'all have some ideas.

I have a request going to a MapServer that is doing the following:

  • Makes ~20 requests that get exceededTransferLimit
  • Makes 1 successful request to get the data (got 136 features)
  • Makes next request to get next bounding box and errors with ECONNRESET

I added some logs to see what was happening, this is the last request information:

previous request got 136 features at url:
https://www.portlandmaps.com/arcgis/rest/services/Public/COP_OpenData/MapServer/112/query?geometry=-13648750.261287501%2C5711764.146687499%2C-13646212.67600625%2C5713953.024956249&geometryType=esriGeometryEnvelope&spatialRel=esriSpatialRelIntersects&geometryPrecision=7&returnGeometry=true&outSR=4326&outFields=%2A&f=json

NEW REQUEST (total request count: 21)

REQUEST URL:
https://www.portlandmaps.com/arcgis/rest/services/Public/COP_OpenData/MapServer/112/query?geometry=-13674126.1141%2C5698630.877075%2C-13663975.772975001%2C5707386.390149999&geometryType=esriGeometryEnvelope&spatialRel=esriSpatialRelIntersects&geometryPrecision=7&returnGeometry=true&outSR=4326&outFields=*&f=json 

request error { Error: read ECONNRESET
    at exports._errnoException (util.js:1026:11)
    at TLSWrap.onread (net.js:569:26) code: 'ECONNRESET', errno: 'ECONNRESET', syscall: 'read' }

It seems like maybe the bounding box is still too large. Its getting 136 features on the first request but it is taking a long time (though increasing the timeout didn't fix it).

I'll keep debugging later but let me know if anything ideas pop up.

release 0.4.0 on npm

Hi there, the latest version on github is 0.4.0 and includes the awesome FeatureServer support. Can you release this on npm (currently at 0.3.0)?

Thanks!

Duplicate OBJECTIDs not returned

There are many datasets that contain duplicate object IDs. Here is an example feature layer: https://maps.deschutes.org/arcgis/rest/services/Dial2_Taxlots/MapServer/0

There are 10 features with an Taxlot_Assessor_Account.OBJECTID of 7313: JSON Results

EsriDump is only returning 1. How can I change the default behavior so that EsriDump pulls all of the features?

Add support for geometry rings

esri-dump https://services5.arcgis.com/8CMfd3uYk8d4J22E/ArcGIS/rest/services/VDHFishConAdvAGOL/FeatureServer/0 > vdh_Fish.geojsonn
/Users/andr7059/.nvm/versions/node/v11.10.1/lib/node_modules/esri-dump/lib/geometry.js:107
                geometry: rings2geojson(feature.geometry.rings)
                                                         ^

TypeError: Cannot read property 'rings' of undefined
    at toGeoJSON (/Users/andr7059/.nvm/versions/node/v11.10.1/lib/node_modules/esri-dump/lib/geometry.js:107:58)
    at /Users/andr7059/.nvm/versions/node/v11.10.1/lib/node_modules/esri-dump/lib/geometry.js:84:26
    at Array.forEach (<anonymous>)
    at Request._callback (/Users/andr7059/.nvm/versions/node/v11.10.1/lib/node_modules/esri-dump/lib/geometry.js:80:27)
    at Request.self.callback (/Users/andr7059/.nvm/versions/node/v11.10.1/lib/node_modules/esri-dump/node_modules/request/request.js:185:22)
    at Request.emit (events.js:197:13)
    at Request.<anonymous> (/Users/andr7059/.nvm/versions/node/v11.10.1/lib/node_modules/esri-dump/node_modules/request/request.js:1154:10)
    at Request.emit (events.js:197:13)
    at IncomingMessage.<anonymous> (/Users/andr7059/.nvm/versions/node/v11.10.1/lib/node_modules/esri-dump/node_modules/request/request.js:1076:12)
    at Object.onceWrapper (events.js:285:13)

Option to ignore TLS issues

e.g. some governments don't implement TLS correctly causing errors like:

node_modules/esri-dump/dist/cli.js:54:5 {
  cause: Error: unable to verify the first certificate
      at TLSSocket.onConnectSecure (node:_tls_wrap:1674:34)
      at TLSSocket.emit (node:events:519:28)
      at TLSSocket._finishInit (node:_tls_wrap:1085:8)
      at ssl.onhandshakedone (node:_tls_wrap:871:12) {
    code: 'UNABLE_TO_VERIFY_LEAF_SIGNATURE'

configurable ceiling

I'm pretty sure the max features can be configured in esri server, we might want to make that configurable here

Invalid URL (Z Data Error)

I can't get this library to work using this url: https://gismaps.kingcounty.gov/arcgis/rest/services/Transit/TransitGrievanceTracking/MapServer/1

I'm getting this error:

TypeError [ERR_INVALID_URL]: Invalid URL at new NodeError (node:internal/errors:399:5) at new URL (node:internal/url:556:13) at new EsriDump (file:///Users/stephentenuto/Dev/parcel-downloader/node_modules/esri-dump/dist/index.js:40:20) at file:///Users/stephentenuto/Dev/parcel-downloader/index.js:13:14 at ModuleJob.run (node:internal/modules/esm/module_job:193:25) { input: 'esri-dump', code: 'ERR_INVALID_URL' }

I've used fetch with this URL before and got a Z Data Error. I ended up having to use the 'got' NPM library instead of fetch.

NPM Missing Module

Just trying to the openaddresses-download script working. I wanted to test a few sources manually so I used npm install -g esri-dump. I get the error cannot find module throught2.
Should this be included in the esri-dump package for npm to install automatically?

esri-dump is now throwing an error with current dependencies

mbp:esri-dump user$ node index.js http://gis.apgov.us/APGarcGIS/rest/services/Maps/ParcelBasemap/MapServer/2

module.js:340
    throw err;
          ^
Error: Cannot find module 'd/d'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object. (/Users/user/testdump/esri-dump/node_modules/es6-set/polyfill.js:4:19)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)

Geocode servers?

Is esri-dump able to pull addresses from Esri GeocodeServers or just MapServers?

'geometry' parameter is invalid,Unable to complete Query operation.

Hi! Can you help me please?
Thank you for your work!

robsalasco@leucippus:~/Desktop/FONDECYT_ENVIRONMENT/WMS_CONAF$ esri-dump http://mapaforestal.infor.cl/ArcGIS/rest/services/20160803_pl_apl/MapServer/6 > 20160803_pl_apl_6.geojson
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: {"code":400,"message":"Unable to complete  operation.","details":["'geometry' parameter is invalid","Unable to complete Query operation."]}
    at Request._callback (/Users/robsalasco/.nodenv/versions/6.6.0/lib/node_modules/esri-dump/lib/geometry.js:48:39)
    at Request.self.callback (/Users/robsalasco/.nodenv/versions/6.6.0/lib/node_modules/esri-dump/node_modules/request/request.js:186:22)
    at emitTwo (events.js:106:13)
    at Request.emit (events.js:191:7)
    at Request.<anonymous> (/Users/robsalasco/.nodenv/versions/6.6.0/lib/node_modules/esri-dump/node_modules/request/request.js:1081:10)
    at emitOne (events.js:96:13)
    at Request.emit (events.js:188:7)
    at IncomingMessage.<anonymous> (/Users/robsalasco/.nodenv/versions/6.6.0/lib/node_modules/esri-dump/node_modules/request/request.js:1001:12)
    at IncomingMessage.g (events.js:291:16)
    at emitNone (events.js:91:20)

Calling CLI throws "command not found"

I installed with this per the docs:

npm install -g esri-dump

and when I run esri-dump I get a

zsh: command not found: esri-dump

I'm looking in my global npm directory and I see a /lib/esri-dump, but no /bin/esri-dump. So it seems like the install worked, but for some reason an executable stub wasn't created in /bin. Is this a known issue?

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.