Author: Sean Gillies Version: 1.0
This document describes a GeoJSON-like protocol for geo-spatial (GIS) vector data.
| # Example of using Fiona, pyproj, and Shapely together in a functional | |
| # style. | |
| import functools | |
| import itertools | |
| import logging | |
| import sys | |
| import fiona | |
| from pyproj import Proj, transform |
| # Translation of Shapefile record geometries in a functional style. | |
| from fiona import collection | |
| from functools import partial | |
| from itertools import imap | |
| import logging | |
| log = logging.getLogger() | |
| # To begin: a few functions to translate geometry coordinates. They call each |
| # Making maps with reduce() | |
| from matplotlib import pyplot | |
| from descartes import PolygonPatch | |
| from fiona import collection | |
| BLUE = '#6699cc' | |
| def render(axes, rec): | |
| """Given matplotlib axes and a record, adds the record as a patch |
| # Swapping x, y coords. | |
| from descartes import PolygonPatch | |
| from fiona import collection | |
| from itertools import imap | |
| import logging | |
| from matplotlib import pyplot | |
| log = logging.getLogger() |
| { | |
| "metadata": { | |
| "name": "Unary union example" | |
| }, | |
| "nbformat": 3, | |
| "nbformat_minor": 0, | |
| "worksheets": [ | |
| { | |
| "cells": [ | |
| { |
| from itertools import islice | |
| import timeit | |
| from shapely.geometry import Point | |
| from shapely.ops import unary_union | |
| def halton(base): | |
| """Returns an iterator over an infinite Halton sequence""" | |
| def value(index): | |
| result = 0.0 |
| from descartes import PolygonPatch | |
| from functools import reduce | |
| import json | |
| import urllib | |
| data = urllib.urlopen("https://raw.github.com/gist/3634233/4de4c6de1cd0edbea410cc32bfcc7cbe90a78b44/tlv.json").read() | |
| f = json.loads(data) | |
| g = f.copy() | |
| g['geometry']['coordinates'] = [f['geometry']['coordinates']] |
| from descartes import PolygonPatch | |
| import fiona | |
| from functools import partial, reduce | |
| from math import sqrt | |
| from itertools import imap | |
| import pylab | |
| from pyproj import Proj, transform | |
| fiona.open = fiona.collection |
There are at least two different dialects of geospatial JSON [1]_ data on the internet today and we're doing very little to explain to clients or servers which one is being used in a particular interaction. A web API may return data using the application/json media type if given a f=json parameter (or not) but a client doesn't necessarily know whether it is getting GeoJSON [2]_ or ArcGIS JSON [3]_, two
different ways of structuring information about the same kinds of entities.
Profiles