Render GeoJSON as ASCII on the commandline.
Project description
_ ___ _ _
____ _ (_)__ \ ____ ___________(_|_)
/ __ `/ / /__/ // __ `/ ___/ ___/ / /
/ /_/ / / // __// /_/ (__ ) /__/ / /
\__, /_/ //____/\__,_/____/\___/_/_/
/____/___/
Render GeoJSON on the commandline. Inspired by @wboykinm, @dnomadb, and a tweet.
Examples
Get help:
$ gj2ascii --help
Render the entire layer in a block 20 pixels wide:
$ gj2ascii sample-data/polygons.geojson --width 20
+ +
+ + +
+
+
+
+ +
+ + + +
+ + + +
+ + + +
+ + + + + + + +
+ + + + + + + +
+ + + +
+ + +
+ + + +
+ + + +
+ + + +
+ +
Read from stdin and render all pixels any geometry touches across 15 pixels:
$ cat sample-data/polygons.geojson | gj2ascii - --width 15 --all-touched
+ + + + + +
+ + + + + +
+ + + +
+ + +
+ + + +
+ + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
+ + + + + +
+ + + + + +
+ + + +
+ + +
Render individual features across 10 pixels and display the attributes for two fields, COUNTYFP and NAME.
$ gj2ascii sample-data/WV.geojson --iterate --properties COUNTYFP,NAME --width 10
+----------+---------+
| COUNTYFP | 001 |
| NAME | Barbour |
+----------+---------+
+ + +
+ + + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + + + +
+ + + + + + +
+ + + +
+ + + +
Press enter for the next geometry or ^C/^D or 'q' to quit...
+----------+---------+
| COUNTYFP | 013 |
| NAME | Calhoun |
+----------+---------+
+ +
+ + + + +
+ + + + + + +
+ + + + + + + + +
+ + + + + + + + +
+ + + + + + + +
+ + + + + + + +
+ + + + + + +
+ + + + + +
+ + + + +
+ + + + + +
+ + + + + +
+ + + + +
+ + + +
Press enter for the next geometry or ^C/^D or 'q' to quit...
Installation
Via pip:
$ pip install gj2ascii
From master branch:
$ git clone https://github.com/geowurster/gj2ascii.git
$ cd gj2ascii
$ python setup.py install
Dependencies
The dependencies are pretty heavy for a utility like this and may require some extra work to get everything installed. All dependencies should install on their own but there are a few potentially problematic packages. Manually installing the following might help:
Some Linux distributions require an additional step before installing rasterio: apt-get install python-numpy-dev
API
Render an entire layer:
with open('sample-data/lines.geojson') as f:
features = json.load(f)
ascii = gj2ascii.render(features['features'], 20)
print(ascii)
+ + + + + + + + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ + + + + + + + +
+ +
+ +
+ +
+ + +
+ + +
+ + +
+ + +
Render a single feature:
import json
import gj2ascii
with open('sample-data/lines.geojson') as f:
features = json.load(f)
ascii = gj2ascii.render([features['features'][0]], 15)
print(ascii)
+ + + + + + +
+ + + + + + +
+
+ +
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ +
Get the properties as a formatted table:
import json
import gj2json
with open('sample-data/WV.geojson') as f:
features = json.load(f)
table = gj2ascii.dict_table(features['features'][0]['properties'])
print(table)
+----------+----------------+
| INTPTLAT | +39.1397248 |
| NAME | Barbour |
| ALAND | 883338808 |
| CLASSFP | H1 |
| FUNCSTAT | A |
| INTPTLON | -079.9969466 |
| LSAD | 06 |
| METDIVFP | None |
| GEOID | 54001 |
| AWATER | 4639183 |
| COUNTYFP | 001 |
| CSAFP | None |
| CBSAFP | None |
| MTFCC | G4020 |
| NAMELSAD | Barbour County |
| STATEFP | 54 |
| COUNTYNS | 01696996 |
+----------+----------------+
Developing
$ git clone https://github.com/geowurster/gj2ascii.git
$ cd gj2ascii
$ virtualenv venv
$ source venv/bin/activate
$ pip install -r requirements-dev.txt
$ pip install -e .
$ nosetests --with-coverage
License
See LICENSE.txt.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file gj2ascii-0.3.0.tar.gz
.
File metadata
- Download URL: gj2ascii-0.3.0.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5349ad597d3576725d47a8b2b1020a57c7a2c936a2cb1a8a875cd506279304a1 |
|
MD5 | b5fd7704eb21b2c9daaccc56a0b3f241 |
|
BLAKE2b-256 | 4bcbd13bac6e88d6f9fd68b97872bae976b578f531fe6d23731da9d746191197 |