isogeocoder is a tool that generates and assigns standardized iso compliant unique identification numbers or codes for entities based on location information. It can create and assign codes based on a country's administrative division (geo-location) or any administrative level depending on the use case.
Project description
About isogeocoder
isogeocoder is a tool that generates and assigns standardized iso compliant unique identification numbers or codes for entities based on location information. It can create and assign codes based on a country's administrative division (geo-location) or any administrative level depending on the use case. Examples include:
- Unique school identity for an education management information system.
- Unique health facility identity for a health management information system.
- Standard administrative level geocode for country planning.
- Administrative level identity generation in digital addressing system.
Dependencies
Dependencies isogeocoder is built on the pandas framework; so all pandas operations can work on isogeocoder. Dataframes generated from each administrative level are saved as CSV files.
We also recommended using the Jupyter notebook.
Installation
Install isogeocoder with pip3
pip3 install isogeocoder
Usage/Examples
isogeocoder is a combination of two libraries, one is the iso library, a standard country dataset manipulation; and the geo library which generates administrative level code on your dataset and generates a unique id using the index of your entity dataset. In the examples, we use the Sierra Leone school list provided by the MInistry of Basic and Senior Secondary Education, dataset Sierra Leone School List
GEO Examples:
Generating a unique school identity for an EMIS system
from isogeocoder import geo
schools_df = geo.data('sl_school_list.csv')
#columns
schools_df.columns
#output
Index(['idregion', 'iddistrict', 'idchiefdom', 'idsection', 'sch_type',
'idschool_name'],
dtype='object')
Region = geo.level1(schools_df,'idregion')
Region
District = geo.level2(schools_df,Region,'iddistrict')
District
Chiefdom = geo.level3(schools_df,District,'idchiefdom')
Chiefdom
Section = geo.level4(schools_df,Chiefdom,'idsection')
Section
<<<<<<< HEAD
Schools = geo.uniqueid(schools_df,Section,'idschool_name')
Schools
=======
>>>>>>> 1bbc060061aa62acd289c8d1934f713be29d7028
School_Type = geo.categorical(schools_df,'sch_type',encoding_type='integer')
School_Type
school_masterlist = geo.gencode(Section,Schools,cat_df=School_Type,level_column='idchiefdom',uniqueid_column='idschool_name_edited_code',title='emis_code',sep='-')
school_masterlist
Generating administrative level coding in digital addressing system
from isogeocoder import geo
schools_df = geo.data('sl_school_list.csv')
#columns
schools_df.columns
#output
Index(['idregion', 'iddistrict', 'idchiefdom', 'idsection', 'sch_type',
'idschool_name'],
dtype='object')
Region = geo.level1(schools_df,'idregion')
Region
District = geo.level2(schools_df,Region,'iddistrict')
District
Chiefdom = geo.level3(schools_df,District,'idchiefdom')
Chiefdom
Section = geo.level4(schools_df,Chiefdom,'idsection')
Section
Region_Alpha = geo.alpha_coder(Region,column='idregion',clen=2)
District_alpha = geo.alpha_coder(District,column='iddistrict',clen=3,add_char='D')
Alpha_df = geo.alpha_merger(region_alpha,district_alpha,'idregion',sufixs=['Reg','Dis'],level=1,sep='-')
Chiefdom_level = Chiefdom[['iddistrict_code','idchiefdom','idchiefdom_code']]
Chiefdom_Alpha= geo.alpha_merger_l3(alpha_df,Chiefdom_level,'idchiefdom_code','iddistrict_code',2,sep='-')
Section_level = Section[['idchiefdom_code','idsection','idsection_code']]
digital_addressing = geo.alpha_merger_l4(l3,Section_level,'idsection_code','idchiefdom_code',4,sep='-')
digital_addressing
ISO Example:
import pandas as pd
from isogeocoder import iso
continents_df = pd.read_csv(iso.countries_data())
subdivision_df = pd.read_csv(iso.subdiv_data())
iso.continents(continents_df)
dataframe of subregions in a continent
iso.subregions(continents_df,'Africa',level=1,sep='-')
iso.countries(continents_df,'Africa',level=2,sep='-')
iso.country(subdivision_df,'Sierra Leone')
Documentation
Documentation is available here
Contributing
PR requests are highly welcome, fork and commit your changes
Authors
License
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file isogeocoder-0.0.1.tar.gz.
File metadata
- Download URL: isogeocoder-0.0.1.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a79924e3ec24a50dc770f0de23179708d30ce5727db7894b8e6691bb87c5fc55
|
|
| MD5 |
b87951382ad26872c12d0b3bd4738e1b
|
|
| BLAKE2b-256 |
206778f900a8f8f6f54019dc760e876e8cad17ceba3e408afb2424ee3686730e
|
File details
Details for the file isogeocoder-0.0.1-py3-none-any.whl.
File metadata
- Download URL: isogeocoder-0.0.1-py3-none-any.whl
- Upload date:
- Size: 9.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
38537093edebf250f6be0b84c936c26bfc3b6ba718d9ed918fda1df6c5d30cbc
|
|
| MD5 |
aaea5f54f5c15424fc13e2b0af4ce8d7
|
|
| BLAKE2b-256 |
ad229ed1ebbc894427eed39f3d313f16aed6d58ca732b448990c707bb59b9a73
|