Tools for converting dataframes to GeoJSON format.
Project description
Convert databases to geojson, useful for displaying datasets on maps.
A FeatureCollection is generated from those dataframe rows containing values for latitude and longitude.
Note: To limit the size of the GeoJSON file, lookup tables are generated automatically for fields with a limited number of values (<20) and saved as a top-level ‘properties’ key in the JSON file. This is not part of the GeoJSON standard and can lead to problems with linters, e.g. GeoJSONLint.
Content
Installation
The package can be installed by
pip install convert2geojson
The latest development version of the package can be installed from GitHub by running
pip install git+https://github.com/computational-antiquity/convert2geojson.git
This installs the most recent version of the master branch.
If the plotting on maps in JupyterLab is not yielding results, there might be problems with your ipyleaflet installtion or ipywidgets installtion.
Basic usage
Import the package with
from convert2geojson import Convert2GeoJson
Loading data
The package is instantiated by providing a dataframe containing the geodata ,e.g. dataframe=df, a list of columns of the dataframe, which should be shown as information for every geo feature, e.g. properties=df.columns to show everything, and the column titles for longitudal and latitudal data (standard parameter names are lat='latitude' and lon='longitude').
data = Convert2GeoJson(
df,
df.columns,
lat='latitude',
lon='longitude'
)
The geo data is expected to be gievn as float numbers. Rows with empty longitudal or latitudel data, or marked as NaN are droped from the supplied dataframe.
The original dataframe can however still be accessed as data.rawDF.
Generate geoJson
To generate the geoJSON simple run
data.convert()
This generates a geoJSON formated dictionary which is available at
data.geojson()
To save the geoJSON to a file, run
data.save()
You can provide parameters for the name and path, standards are name='data.geojson' and path='.'.
Plotting
For plotting the package is leveraging the ipyleaflet package which is also available as a JupyterLab extension.
For a first overview use
data.display()
This plots the geoJSON features as a layer on a basemap.
The basic plotting can be changed by parameters for the map layout (mapLayout=dict()), and the basemap data (basemap=dict()).
To use a custom basemap, you can provide a dictionary of the format
customBasemap = {
'url': 'https://{s}.URL_to_mapdata/{z}/{x}/{y}.png',
'max_zoom': 'max available zoom level',
'attribution': 'Attribution',
'name': 'Name for layer control'
}
Screenshot
Grouped Plotting
For densely distributed geographical data, to styling options are available.
By choosing style='grouped' ipyleaflets MarkerCluster is used to show groups of markers depending on the zoom level. By clicking on a cluster, the map zooms to the level, which contains the selected markers in the cluster .
Additionally, since markers are now single entities, by clicking on any marker a popup shows the information of the dataframe belonging to the geographical point.
Screenshot
Categorical plotting as pie chart distribution
By choosing style='pie' and providing a category found in the dataframe columns, by setting groupBy='Category', the package generates a standalone map showing the clustered markers as pie charts separated into sub-groups by the chosen category.
Screenshot
Examples
Have a look at the Loading datasets or the Advanced Plotting notebooks in the /example folder
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file convert2geojson-0.0.2.tar.gz
.
File metadata
- Download URL: convert2geojson-0.0.2.tar.gz
- Upload date:
- Size: 21.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.0 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 821228f527147ed816c58d26be0c40f85f5c951c13be5fd39be81c57461aa8f3 |
|
MD5 | b94b12970ebb98338e0d5c205fa6aeb2 |
|
BLAKE2b-256 | 055b0e12f512b3022e8328816769ca709fc9e118d256f4782e521207a3a16fa2 |
File details
Details for the file convert2geojson-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: convert2geojson-0.0.2-py3-none-any.whl
- Upload date:
- Size: 15.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.0 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 985d7c5e2194b04c4e75284980bc7e993122c9fcd759360af6ccdd12bb2543e0 |
|
MD5 | 608388646503311c4f99d634c89f7725 |
|
BLAKE2b-256 | 8d78941687e80634f07350a5dbc532bf2165a775fa98da65e379d0e0546fdb21 |