<commit_before>Python Geo Interface
====================

Specified here is a simple interface, when provided, allows objects to be
easily adapted for use with the Python Cartographic Library, GeoJSON, or
Shapely. It is inspired by the Numpy Array Interface, and plays a very similar
role in GIS or geospatial programming. The Geo Interface has 3 levels: feature
collections, features, and geometries.

Feature Collection
------------------

A feature collection maps 1 item:

*members*: a sequence of objects that provide the next (feature) level of the
interface.

Feature
-------

A feature object maps 3 items: 

*id*: a unique string identifier.

*properties*: a mapping of feature properties.

*geometry*: an object that provides the next (geometry) level of the interface.

Geometry
--------

A geometry object maps 3 items:

*type*: 'Point', 'Line', 'Polygon', 'Box' (multi-types not yet under
consideration).

*coordinates*: a sequence of sequences of float values in x, y, (and maybe z)
order.

The Simplest Possible Example
-----------------------------

Here is the simplest example of all 3 levels of the interface::

  # feature collection
  {'members': [
      # feature
      {'id': '1', 'properties': {'title': 'Member One'}, 'geometry': {
          # geometry
          'type': 'Point',
          'coordinates': ((-106.0, 40.0))}
          }
      ]
  }
<commit_msg>Specify WGS 1984 for default coordinate system<commit_after>Python Geo Interface
====================

Specified here is a simple interface, when provided, allows objects to be
easily adapted for use with the Python Cartographic Library, GeoJSON, or
Shapely. It is inspired by the Numpy Array Interface, and plays a very similar
role in GIS or geospatial programming. The Geo Interface has 3 levels: feature
collections, features, and geometries.

Feature Collection
------------------

A feature collection maps 1 item:

*members*: a sequence of objects that provide the next (feature) level of the
interface.

Feature
-------

A feature object maps 3 items: 

*id*: a unique string identifier.

*properties*: a mapping of feature properties.

*geometry*: an object that provides the next (geometry) level of the interface.

Geometry
--------

A geometry object maps 3 items:

*type*: 'Point', 'Line', 'Polygon', 'Box' (multi-types not yet under
consideration).

*coordinates*: a sequence of sequences of float values in x, y, (and maybe z)
order.

Coordinate Systems
------------------

Version 1.0 does not consider coordinate systems. 

The Simplest Possible Example
-----------------------------

Here is the simplest example of all 3 levels of the interface::

  # feature collection
  {'members': [
      # feature
      {'id': '1', 'properties': {'title': 'Member One'}, 'geometry': {
          # geometry
          'type': 'Point',
          'coordinates': ((-106.0, 40.0))}
          }
      ]
  }

{'fraction_non_alphanumeric': 0.14384508990318118, 'fraction_numerical': 0.011065006915629323, 'mean_word_length': 2.984848484848485, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '457856', 'n_tokens_mistral': 798, 'n_tokens_neox': 737, 'n_words': 363}