Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/koopjs/koop-provider-csv
Koop provider for CSV
https://github.com/koopjs/koop-provider-csv
csv koopjs plugin provider
Last synced: 2 months ago
JSON representation
Koop provider for CSV
- Host: GitHub
- URL: https://github.com/koopjs/koop-provider-csv
- Owner: koopjs
- License: mit
- Created: 2018-11-06T02:10:25.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-04-24T18:38:10.000Z (almost 2 years ago)
- Last Synced: 2024-04-10T22:19:35.304Z (10 months ago)
- Topics: csv, koopjs, plugin, provider
- Language: JavaScript
- Size: 593 KB
- Stars: 5
- Watchers: 3
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# koop-provider-csv
A configurable and reusable [CSV](https://en.wikipedia.org/wiki/Comma-separated_values) provider for [Koop](http://koopjs.github.io/), created with [Koop CLI](https://github.com/koopjs/koop-cli)
This provider can load a CSV file from a local path or a remote endpoint. The provided CSV file must include columns of latitude and longitude coordinates.
## Features
- fully configurable
- support multiple CSV sources
- support local file path or remote endpoint
- support multiple CSV files for a single source
- parse boolean and numeric values automatically
- stream processing## Installation
with npm
```bash
npm install koop-provider-csv
```with [Koop CLI](https://github.com/koopjs/koop-cli) for your Koop app
```bash
koop add provider koop-provider-csv
```## Usage
Once installed, this provider enables routes like
```
/koop-provider-csv/:id/FeatureServer/*
```where `id` is the unique ID for a source CSV defined in the configuration file.
For example, this route allows to query a CSV file with ID `my-csv`:
```
/koop-provider-csv/my-csv/FeatureServer/0/query
```## Configuration
This provider is configured with [config](https://github.com/lorenwest/node-config) and all configuration files are in the `config` directory.
A configuration looks like this:
```javascript
{
// configuration namespace for this provider plugin
"koop-provider-csv": {
// define one or multiple CSV sources
"sources": {
// a unique ID for each source, which is used in the query route
"my-csv": {
// [optional] a URL for the source CSV
"url": "url_to_csv",
// [optional] a file path or a glob pattern to local CSV file(s)
"path": "path_to_csv",
// [required] point coordinate columns
"geometryColumns": {
"longitude": "longitude_column_name",
"latitude": "latitude_column_name"
},
// [optional] ArcGIS service metadata
// See https://koopjs.github.io/docs/development/provider/model#adding-provider-metadata-to-the-geojson
"metadata": {
"idField": "id_column_name"
}
}
}
}
}```
See `config/example-with-path.json` or `config/example-with-url.json` for full example configurations.
## Development
### Run dev server
```bash
$ npm start
```A dev server will be running at `http://localhost:8080`. By default, it will use with `NODE_ENV=dev` and the dev configuration `config/dev.json` should be created beforehand.
### Run tests
```bash
$ npm test
```## License
MIT