GithubHelp home page GithubHelp logo

zupeiza / pycartociudad Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pyladiesmadrid/pycartociudad

0.0 0.0 0.0 775 KB

Python package to query cartociudad API

License: GNU General Public License v3.0

Makefile 0.29% Python 3.68% Jupyter Notebook 96.03%

pycartociudad's Introduction

pycartociudad

Documentation Status

pycartociudad contains Python functions to access the CartoCiudad REST and WPS API (REST y WPS) from IGN with spanish cartography services.

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

To use the pycartociudad package you will need to have python installed (at least version 3.6). For detailed instructions, please check the Downloading Python guide

Dependencies can be managed through a pipenv wrapper. In order to install pipenv, check the pipenv installation documentation.

Installing

To install the latest published PyPI version of pycartociudad:

pip install pycartociudad

To upgrade an already installed pycartociudad package from PyPI:

pip install --upgrade pycartociudad

The pycartociudad development repository can be found in the pycartociudad GitHub repository. To make a local copy of the pycartociudad repository, clone it or download is as a zip file.

To get a development env running, go to the downloaded or cloned pycartociudad folder and install it using pipenv:

$ pipenv install --dev

Features

Geocoding

Geocoding is the geolocation of addresses in Spain via Cartociudad API calls. Calling the geocode function returns the details of the closest address in Spain to the indicated address.

import pycartociudad as pycc pycc.geocode('Plaza mayor 1, madrid')

Returns:

{
"id":"280790001063", "province":"Madrid", "comunidadAutonoma":"Comunidad de Madrid", "muni":"Madrid", "type":"portal", "address":"MAYOR", "postalCode":"28012", "poblacion":"Madrid", "geom":"POINT (-3.7066353973101624 40.41505683353346)", "tip_via":"PLAZA", "lat":40.41505683353346, "lng":-3.7066353973101624, "portalNumber":1, "stateMsg":"Resultado exacto de la búsqueda", "state":1, "countryCode":"011", "refCatastral":"None"

}

Reverse geocoding

Reverse geocoding is the search of an address details based on latitude and longitude coordinates.

import pycartociudad as pycc pycc.reverse_geocode(40.4472, -3.7076)

Returns:

{
"id":"280790165933", "province":"Madrid", "comunidadAutonoma":"Comunidad de Madrid", "muni":"Madrid", "type":"None", "address":"REINA VICTORIA", "postalCode":"28003", "poblacion":"Madrid", "geom":"POINT (-3.707649842620833 40.447247624136764)", "tip_via":"AVENIDA", "lat":40.447247624136764, "lng":-3.707649842620833, "portalNumber":22, "stateMsg":"Resultado exacto de la búsqueda", "state":1, "priority":0, "countryCode":"011", "refCatastral":"None"

}

Reverse geocoding can be performed to look for cadastral details with the cadastral parameter.

pycc.reverse_geocode(40.4472476241486,-3.7076498426208833, cadastral=True)

Returns:

{
"id":"None", "province":"None", "comunidadAutonoma":"None", "muni":"None", "type":"None", "address":"0079609VK4707G", "postalCode":"None", "poblacion":"None", "geom":"POINT (-3.7076498426208833 40.4472476241486)", "tip_via":"None", "lat":40.4472476241486, "lng":-3.7076498426208833, "portalNumber":0, "stateMsg":"Resultado exacto de la búsqueda", "state":1, "priority":0, "countryCode":"011", "refCatastral":"AV REINA VICTORIA 22 MADRID (MADRID)"

}

Get location info

The get_location_info function gets extra information of a location using official spanish web map services, such as cadastre, census or geocoding information.

import pycartociudad as pycc pycc.get_location_info(40.4472476241486,-3.7076498426208833)

Returns:

{
"cadastral_ref":"0079609VK4707G", "census_section":"2807906001", "district_code":"2807906", "id":"280790165933", "province":"Madrid", "comunidadAutonoma":"Comunidad de Madrid", "muni":"Madrid", "type":"None", "address":"REINA VICTORIA", "postalCode":"28003", "poblacion":"Madrid", "geom":"POINT (-3.707649842620833 40.447247624136764)", "tip_via":"AVENIDA", "lat":40.447247624136764, "lng":-3.707649842620833, "portalNumber":22, "stateMsg":"Resultado exacto de la búsqueda", "state":1, "priority":0, "countryCode":"011", "refCatastral":"None"

}

Route between two points

This function gets the route between two points (encoded with their latitude-longitude coordinates), either walking or in a vehicle.

import pycartociudad as pycc d = pycc.route_between_two_points(40.447313139920475,-3.704361232340851,40.44204376380937,-3.699671450323607) for i in d['instructionsData']['instruction']:

print(i['description'])

Prints:

Continúe por GLORIETA CUATRO CAMINOS Gire justo a la derecha por CALLE SANTA ENGRACIA Gire a la izquierda por CALLE RIOS ROSAS Objetivo logrado

Get static map image

This function gets a static map centered on an address, as a png image.

Please note this function is quite heavy on the server side, it should be used only for single uses. For an extensive use, please consider cached map tiles extraction (for an example on this use, please check the example_get_map in the notebooks directory.

Running the tests

To run a subset of tests:

$ python -m unittest tests.test_geocode
$ python -m unittest tests.test_reverse_geocode

Documentation

The pycartociudad documentation can be found in pycartociudad readthedocs.

Details on the API implementation can be found in the official Cartociudad API specs.

Contributing

Please read CONTRIBUTING.rst for the process of submitting pull requests to us.

For details on our code of conduct, check the PyLadies Code of Conduct.

Authors

For a list of contributors, check the PyLadies pycartociudad contributor list

License

There are two licenses here:

  • The data returned by this package is provided by IGN web services and implies the user's acceptance of a CC-BY 4.0 scne.es license. More info available in the IGN license specs.
  • This package, responsible of querying IGN cartociudad API, is under a GPLv3 license. More information available in this repository LICENSE file.

Built with

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

pycartociudad's People

Contributors

aliciapj avatar koldlight avatar beatriz-stylesage avatar zupeiza avatar beatrizgoa avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.