Skip to content

Hacktoberfest

Luz Frias edited this page Oct 10, 2020 · 2 revisions

Hacktoberfest

Recursos útiles

  • Documentación API. Servicios REST a partir de página 42.
  • Paquete R. Lleva un tiempo sin actualizarse, puede que no tenga implementado algún cambio reciente de la API.

Propuesta

Organización

  • Estilo código, linters, ... (¿black, flake8, ...?)
  • Gestión dependencias (¿Pipfile, requirements.txt?)
  • Creación estructura del proyecto, sabiendo que se va a paquetizar

Features

Básicas:

  • Geocoding de una dirección
  • Reverse geocoding de una posición
  • Extraer información de una posición (ref. catastral, sección censal). Servidor WMS! (es hardcore)
  • Rutas entre dos puntos
  • Áreas de influencia (opcional)

Avanzadas:

  • Funciones básicas, pero "masivas" (pasar dataframe para hacer geocoding / extracción de info). ¿Paralelización, caché, gestión errores?
  • ¿Plot en mapas?

Otros

  • Documentación (readthedocs?)
  • Testing (en varias versiones de python, tox?)
  • Paquetización del proyecto
  • Añadir LICENSE, CONTRIBUTING, ...
  • Publicación en PyPI
  • Automatización de pipelines (p.e. correr tests al pushear, quizás autopublicar en PyPI al pushear en master, ...)

Primeros pasos

Hacerse con la API

Trastear con la API REST de cartociudad (directamente desde el explorador, con postman, con el paquete requests de python...). Os recomiendo empezar a mirar en la doc las funciones "find" (geocoding) y "reverseGeocode".

Por ejemplo:

http://www.cartociudad.es/geocoder/api/geocoder/findJsonp?q=calle%20sor%20angela%20de%20la%20cruz%208%20madrid&type=callejero&outputformat=json

http://www.cartociudad.es/geocoder/api/geocoder/reverseGeocode?lon=-1.371939&lat=41.487733

Conocer el paquete requests

Las llamadas a la API las haremos utilizando el paquete requests. Si no tienes experiencia con él, puedes consultar su documentación o mirar el capítulo dedicado a las APIs en mi curso de data

Podéis luego probar a crearos un mini-notebook / script en python que haga peticiones a la API de cartociudad utlizando requests.

Estructura inicial

Creamos la estructura inicial + un readme para saber cómo instalarlo en local.

La estructura tendrá un gestor de dependencias (Pipfile? requirements.txt?) y "lo necesario" para ser un paquete instalable (setup.py ...)

Clone this wiki locally