Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    nyc-bytespublic

    node-nyc-bytes

    A node.js module for working with NYC's BYTES of the BIG APPLE datasets.

    nyc-bytes automatically downloads, extracts, and exposes a stream of objects from any of the supported datasets. Most datasets return object representations of the records. MapPluto returns GeoJSON Polygons converted from New York - Long Island State Plane Coordinate System (NAD83) to standard Latitude/Longitude (WGS84) for easy mapping use.

    Currently Supported Datasets

    • PLUTO
    • MapPluto
    • NYC Zoning Tax Lot Database
    • PAD (Property Address Directory)

    Usage

    npm install nyc-bytes
    

    Each dataset is exposed as a singleton object that must be initialized. This ensures that the underlying files are downloaded, extracted, and ready for use. Initializing the dataset returns a Promise that returns once the dataset has finished initializing.

    const Bytes = require('nyc-bytes');
    
    const dataset = Bytes.Pluto;
    dataset.init().then(() => {
      console.log('Dataset ready.');
      const stream = dataset.stream();
      // do something with stream
    }).catch((err) => {
      console.error(err);
    });
    
    Datasets
    • Pluto - var dataset = Bytes.Pluto;
    • MapPluto - var dataset = Bytes.MapPluto; (requires ogr2ogr)
    • NYC Zoning Tax Lot Database - var dataset = Bytes.ZoningTaxLot;
    • PAD (Property Address Directory) - var dataset = Bytes.PAD;

    dataset.stream([options])

    The dataset's underlying data is accessible like any other standard node stream.

    const stream = dataset.stream();
    stream.on('readable', () => {
      const record = stream.read();
      // do something with the record
    });
    stream.on('end', () => {
      console.log('finished');
    });
    

    You can also use the stream in flowing mode by attaching a data event listener.

    const stream = dataset.stream();
    stream.on('data', (record) => {
      // do something with the record
    });
    stream.on('end', () => {
      console.log('finished');
    });
    

    Lastly, you can also pipe the stream like you would any other readable stream.

    const stream = dataset.stream();
    const writableStream = somehowGetWritableStream();
    stream.pipe(writableStream);
    

    options

    • boroughs - default: ['MN','BX','BK','QN','SI'] - Array of boroughs to return in the stream.
    • table - default: 'BOTH' - Which table ('BBL'|'ADR') to return (only applicable to PAD dataset)
    • sanitize - default: true - Removes extra whitespaces. (only applicable to PAD dataset) Ex.
    "EAST   45 STREET               "
    

    becomes

    "EAST 45 STREET"
    

    Todo

    • Add datasets - open an issue to suggest a dataset you'd like to see.

    install

    npm i nyc-bytes

    Downloadslast 7 days

    0

    version

    1.0.1

    license

    MIT

    repository

    github.com

    last publish

    collaborators

    • avatar