API - Guía de Usuario
En esta página puede consultar la guía de usuario del portal, y ejemplos de cómo acceder a través de la api a los conjuntos de datos del portal tenerifedata. Seleccione el apartado al que quiere acceder:
Pulse el botón Map para mostrar el mapa
Introduzca el texto a buscar en todo el conjunto de datos devuelto

Mapa con el marcador

Si el marcador no se ve pulse el checkbox "Cluster Markers"
Si se devuelve más de un resultado se muestran todos

Uso de las tablas de datos
Introduzca el texto a buscar en todo el conjunto de datos devuelto

Activar/Desactivar columnas a mostrar

Para obtener la información contenida en el portal, además de la interfaz gráfica se pueden utilizar llamadas a la API de CKAN para obtener toda la información contenida en el portal. A continuación se explican los pasos a seguir para obtener, tanto información general como información> específica, así como una explicación de los datos obtenidos.
Antes, sería bueno recordar cómo se organiza el portal. Si pensamos en una estructura descendente top-down, el primer elemento serían las organizaciones. En ellas se definen los diferentes grupos (tener en cuenta que hasta la versión actual los identificadores de los grupos deben ser diferentes aunque se repitan en diferentes organizaciones).
En cada grupo se definen los datasets (conjuntos de datos), que además pueden pertenecer a varios grupos.
En cada dataset se pueden definir uno o varios recursos, por ejemplo en http://www.tenerifedata.com/dataset/informacion-por-municipios, se ha definido la información tanto en formato geojson y Excel.
Teniendo en cuenta lo anterior vamos a mostrar cómo obtener la información de primer nivel y a continuación ir ajustando la búsqueda de información. De esta manera seremos capaces de acceder a la información particular y general que deseemos.
El tratamiento de los objetos json devueltos se puede realizar con cualquiera de las diversas librerías disponibles.
Obtener los grupos del portal
Utilizamos la siguiente llamada a la API:
http://www.tenerifedata.com/api/3/action/group_list
Obtenemos la siguiente información, objeto json con tres campos. Si success es true hemos obtenido resultados, result devuelve un vector con todos los grupos.
{
help: "Return a list of the names of the site's groups.
success: true,
result:
[
"bienestar-social",
"comercios",
"demografia",
"dossieres-prensa",
"indicadores-economicos",
"industria",
"medio-ambiente",
"mercado-laboral",
"movilidad",
"turismo"
]
Con esta simple url obtenemos los nombres, que a su vez son los identificadores de los grupos (bienestar-social, comercios, demografía, etc….).
El código sería por ejemplo el siguiente:
BufferedReader reader = null;
String urlString = "http://www.tenerifedata.com/api/3/action/group_list";
URL url = new URL(urlString);
reader = new BufferedReader(new InputStreamReader(url.openStream()));
Obtener la información del grupo comercio
Utilizamos la siguiente llamada a la API:
http://www.tenerifedata.com/api/3/action/group_show?id=comercio
Obtenemos la siguiente información, objeto json con tres campos. Si success es true hemos obtenido resultados, result devuelve un vector con todos los grupos.
{
help: "Return the details of a group.",
success: true,
result:
{
users: [ ],
display_name: "Comercio",
description: "Información geolocalizada de actividades económicas, culturales, de ocio y administrativas.",
image_display_url: "http://www.tenerifedata.com/uploads/group/20140614-162647.771212phcomercio.jpg",
title: "Comercio",
package_count: 0,
created: "2014-06-14T18:18:59.024424",
approval_status: "approved",
is_organization: false,
state: "deleted",
extras: [ ],
image_url: "20140614-162647.771212phcomercio.jpg",
groups: [ ],
num_followers: 0,
revision_id: "e1dd8ed4-d2be-4e97-8f9e-5162652cc7a3",
packages: [ ],
type: "group",
id: "1e80a45a-e9e5-4285-8ebc-e709c0cb922a",
tags: [ ],
name: "comercio"
}
Con este simple ejemplo obtenemos un objeto json con toda la información de este grupo concreto como puede ser:
- Título: title: Comercio
- Descripción: Description: Descripción del grupo
- Fecha de creación (con formato ISO): created: 2014-06-14T18:18:59.024424
- Etc.
BufferedReader reader = null;
String urlString = " http://www.tenerifedata.com/api/3/action/group_show?id=comercio ";
URL url = new URL(urlString);
reader = new BufferedReader(new InputStreamReader(url.openStream()));
Obtener conjuntos de datos (datasets) del portal
Utilizamos la siguiente llamada a la API:
http://www.tenerifedata.com/api/3/action/package_list
BufferedReader reader = null;
String urlString = "http://www.tenerifedata.com/api/3/action/package_list";
URL url = new URL(urlString);
reader = new BufferedReader(new InputStreamReader(url.openStream()));
Obtenemos la siguiente información, objeto json con tres campos. Si success es true hemos obtenido resultados, result devuelve un vector con todos los datasets del portal
{help: "Return a list of the names of the site's datasets (packages). ",
success: true,
result:
[
"afiliacion-a-la-seguridad-social",
"censo",
"censo-agrario-1999",
"censo-agrario-2009",
"censo-de-poblacion-y-viviendas-2011",
"censos-agrarios-1982-1999",
"ci",
"cifras-censales",
"comercio-y-alimentacion",
"contratos",
"cuentas-economicas",
"demandantes-de-empleo",
"empresas-y-actividades-en-poligonos-industriales",
"empresas-y-centros-de-trabajo",
"encuesta-de-poblacion-activa-epa",
"estadistica-agraria-de-tenerife",
"estadisticas-de-empleo-registrado",
"flores-esquejes-y-plantas",
"hosteleria-y-restauracion",
"iass-recursos-sanitarios-y-atencion-social",
"indices-de-ocupacion-por-categoria-y-zona",
"industria",
"informacion-por-municipios",
"medicina-y-salud",
"movimiento-natural-de-la-poblacion",
"nomenclator-de-poblacion-tenerife",
"parque-vehiculos",
"pernoctaciones-por-categoria-y-zona",
"platano",
"plazas-de-alojamientos-por-categoria-y-zona",
"poligonos-industriales",
"precios-consumo-e-inversion",
"prensa-economica-nacional",
"prensa-economica-regional",
"prensa-economica-turismo",
"produccion-vitivinicola",
"productos-hortofruticolas",
"titsa-informacion-sobre-sistema-de-transporte",
"transporte",
"transporte-aereo",
"transporte-maritimo",
"turismo",
"turistas-alojados-por-categoria-y-zona",
"turistas-alojados-por-municipios"
}
Obtener los recursos para un dataset concreto
Utilizamos la siguiente llamada a la API:
http://www.tenerifedata.com/api/3/action/package_show?id=medicina-y-salud
BufferedReader reader = null;
String urlString = "http://www.tenerifedata.com/api/3/action/package_show?id=medicina-y-salud";
URL url = new URL(urlString);
reader = new BufferedReader(new InputStreamReader(url.openStream()));
En este objeto obtenemos los recursos para este dataset concreto. De nuevo tenemos help, success y result. Se ha recortado porque no es necesario mostrarlos todos para ilustrar este ejemplo.
En result, hay un vector llamado resources con una lista de los recursos y todo tipo de información.
Para acceder al recurso necesitamos el campo url, que proporciona la ubicación del fichero con la información
{help: "Return the metadata of a dataset (package) and its resources.",
success: true,
result:
{
license_title: "Creative Commons Attribution",
maintainer: "",
relationships_as_object: [ ],
private: false,
maintainer_email: "",
revision_timestamp: "2016-03-29T10:02:17.022113",
id: "d1826fd4-38e1-4e9a-a01e-560e035690e4",
metadata_created: "2014-07-15T08:59:54.381651",
metadata_modified: "2016-03-29T10:02:17.023637",
author: "Cabildo Insular de Tenerife",
author_email: "",
state: "active",
version: "",
creator_user_id: "6af82965-4e51-4fff-b011-c8b044ed910f",
type: "dataset",
resources:
[
{
resource_group_id: "82de018e-8bd5-4584-ba5b-275300a5bbeb",
cache_last_updated: null,
revision_timestamp: "2014-07-15T09:05:38.180599",
webstore_last_updated: null,
id: "593a55e3-fe09-46b8-aaf8-8ce654744639",
size: null,
state: "active",
hash: "",
description: "",
format: "geojson",
tracking_summary:
{
total: 0,
recent: 0
},
last_modified: null,
url_type: "upload",
mimetype: null,
cache_url: null,
name: "Centros de salud",
created: "2014-07-15T11:00:58.162465", url: "http://www.tenerifedata.com/dataset/d1826fd4-38e1-4e9a-a01e-560e035690e4/resource/593a55e3-fe09-46b8-aaf8-8ce654744639/download/centrosdesalud.geojson",
webstore_url: null,
mimetype_inner: null,
position: 0,
revision_id: "e0d03d59-3465-4e2c-bcd8-df714138543a",
resource_type: null
},
{
resource_group_id: "82de018e-8bd5-4584-ba5b-275300a5bbeb",
cache_last_updated: null,
revision_timestamp: "2014-07-15T09:15:28.676196",
webstore_last_updated: null,
id: "fff4fbbe-ecfd-445c-b4cc-6ed7152a07bf",
size: null,
state: "active",
hash: "",
description: "",
format: "geojson",
tracking_summary:
{
total: 0,
recent: 0
last_modified: null,
url_type: "upload",
mimetype: null,
cache_url: null,
name: "Farmacias",
created: "2014-07-15T11:14:58.060523",
url: "http://www.tenerifedata.com/dataset/d1826fd4-38e1-4e9a-a01e-560e035690e4/resource/fff4fbbe-ecfd-445c-b4cc-6ed7152a07bf/download/farmacias.geojson",
webstore_url: null,
mimetype_inner: null,
position: 1,
revision_id: "0b388f88-9b05-46d5-a0ea-2e954c342a8d",
resource_type: null
},
license_id: "cc-by",
relationships_as_subject: [ ],
num_tags: 1,
organization: null,
name: "medicina-y-salud",
isopen: true,
url: "http://www.tenerifecomercio.com",
notes: "Información georeferenciada y listados de centros de salud, farmacias, clínicas dentales y otros servicios sanitarios",
owner_org: null,
extras: [ ],
license_url: "http://www.opendefinition.org/licenses/cc-by",
title: "Medicina y salud",
revision_id: "0e9ef3ab-f955-4a8e-a962-4ba47c0d2ef0"
}
Para obtener la información contenida en el portal, además de la interfaz gráfica se pueden utilizar llamadas a la API de CKAN para obtener toda la información contenida en el portal. A continuación se explican los pasos a seguir para obtener, tanto información general como información> específica, así como una explicación de los datos obtenidos.
Antes, sería bueno recordar cómo se organiza el portal. Si pensamos en una estructura descendente top-down, el primer elemento serían las organizaciones. En ellas se definen los diferentes grupos (tener en cuenta que hasta la versión actual los identificadores de los grupos deben ser diferentes aunque se repitan en diferentes organizaciones).
En cada grupo se definen los datasets (conjuntos de datos), que además pueden pertenecer a varios grupos.
En cada dataset se pueden definir uno o varios recursos, por ejemplo en http://www.tenerifedata.com/dataset/informacion-por-municipios, se ha definido la información tanto en formato geojson y Excel.
Teniendo en cuenta lo anterior vamos a mostrar cómo obtener la información de primer nivel y a continuación ir ajustando la búsqueda de información. De esta manera seremos capaces de acceder a la información particular y general que deseemos.
El tratamiento de los objetos json devueltos se puede realizar con cualquiera de las diversas librerías disponibles.
Obtener los grupos del portal
Utilizamos la siguiente llamada a la API:
http://www.tenerifedata.com/api/3/action/group_list
Obtenemos la siguiente información, objeto json con tres campos. Si success es true hemos obtenido resultados, result devuelve un vector con todos los grupos.
{
help: "Return a list of the names of the site's groups.
success: true,
result:
[
"bienestar-social",
"comercios",
"demografia",
"dossieres-prensa",
"indicadores-economicos",
"industria",
"medio-ambiente",
"mercado-laboral",
"movilidad",
"turismo"
]
Con esta simple url obtenemos los nombres, que a su vez son los identificadores de los grupos (bienestar-social, comercios, demografía, etc….).
El código sería por ejemplo el siguiente:
url_datasets = 'http://www.tenerifedata.com/api/3/action/group_list'
response = urllib.urlopen(url_datasets)
json_obj = json.load(response)
pprint.pprint(json_obj)
Obtener la información del grupo comercio
Utilizamos la siguiente llamada a la API:
http://www.tenerifedata.com/api/3/action/group_show?id=comercio
Obtenemos la siguiente información, objeto json con tres campos. Si success es true hemos obtenido resultados, result devuelve un vector con todos los grupos.
{
help: "Return the details of a group.",
success: true,
result:
{
users: [ ],
display_name: "Comercio",
description: "Información geolocalizada de actividades económicas, culturales, de ocio y administrativas.",
image_display_url: "http://www.tenerifedata.com/uploads/group/20140614-162647.771212phcomercio.jpg",
title: "Comercio",
package_count: 0,
created: "2014-06-14T18:18:59.024424",
approval_status: "approved",
is_organization: false,
state: "deleted",
extras: [ ],
image_url: "20140614-162647.771212phcomercio.jpg",
groups: [ ],
num_followers: 0,
revision_id: "e1dd8ed4-d2be-4e97-8f9e-5162652cc7a3",
packages: [ ],
type: "group",
id: "1e80a45a-e9e5-4285-8ebc-e709c0cb922a",
tags: [ ],
name: "comercio"
}
Con este simple ejemplo obtenemos un objeto json con toda la información de este grupo concreto como puede ser:
- Título: title: Comercio
- Descripción: Description: Descripción del grupo
- Fecha de creación (con formato ISO): created: 2014-06-14T18:18:59.024424
- Etc.
url_datasets = 'http://www.tenerifedata.com/api/3/action/group_show?id=comercio'
response = urllib.urlopen(url_datasets)
json_obj = json.load(response)
pprint.pprint(json_obj)
Obtener conjuntos de datos (datasets) del portal
Utilizamos la siguiente llamada a la API:
http://www.tenerifedata.com/api/3/action/package_list
BufferedReader reader = null;
String urlString = "http://www.tenerifedata.com/api/3/action/package_list";
URL url = new URL(urlString);
reader = new BufferedReader(new InputStreamReader(url.openStream()));
Obtenemos la siguiente información, objeto json con tres campos. Si success es true hemos obtenido resultados, result devuelve un vector con todos los datasets del portal
{help: "Return a list of the names of the site's datasets (packages). ",
success: true,
result:
[
"afiliacion-a-la-seguridad-social",
"censo",
"censo-agrario-1999",
"censo-agrario-2009",
"censo-de-poblacion-y-viviendas-2011",
"censos-agrarios-1982-1999",
"ci",
"cifras-censales",
"comercio-y-alimentacion",
"contratos",
"cuentas-economicas",
"demandantes-de-empleo",
"empresas-y-actividades-en-poligonos-industriales",
"empresas-y-centros-de-trabajo",
"encuesta-de-poblacion-activa-epa",
"estadistica-agraria-de-tenerife",
"estadisticas-de-empleo-registrado",
"flores-esquejes-y-plantas",
"hosteleria-y-restauracion",
"iass-recursos-sanitarios-y-atencion-social",
"indices-de-ocupacion-por-categoria-y-zona",
"industria",
"informacion-por-municipios",
"medicina-y-salud",
"movimiento-natural-de-la-poblacion",
"nomenclator-de-poblacion-tenerife",
"parque-vehiculos",
"pernoctaciones-por-categoria-y-zona",
"platano",
"plazas-de-alojamientos-por-categoria-y-zona",
"poligonos-industriales",
"precios-consumo-e-inversion",
"prensa-economica-nacional",
"prensa-economica-regional",
"prensa-economica-turismo",
"produccion-vitivinicola",
"productos-hortofruticolas",
"titsa-informacion-sobre-sistema-de-transporte",
"transporte",
"transporte-aereo",
"transporte-maritimo",
"turismo",
"turistas-alojados-por-categoria-y-zona",
"turistas-alojados-por-municipios"
}
Obtener los recursos para un dataset concreto
Utilizamos la siguiente llamada a la API:
http://www.tenerifedata.com/api/3/action/package_show?id=medicina-y-salud
url_datasets = 'http://www.tenerifedata.com/api/3/action/package_show?id=medicina-y-salud'
response = urllib.urlopen(url_datasets)
json_obj = json.load(response)
pprint.pprint(json_obj)
En este objeto obtenemos los recursos para este dataset concreto. De nuevo tenemos help, success y result. Se ha recortado porque no es necesario mostrarlos todos para ilustrar este ejemplo.
En result, hay un vector llamado resources con una lista de los recursos y todo tipo de información.
Para acceder al recurso necesitamos el campo url, que proporciona la ubicación del fichero con la información
{help: "Return the metadata of a dataset (package) and its resources.",
success: true,
result:
{
license_title: "Creative Commons Attribution",
maintainer: "",
relationships_as_object: [ ],
private: false,
maintainer_email: "",
revision_timestamp: "2016-03-29T10:02:17.022113",
id: "d1826fd4-38e1-4e9a-a01e-560e035690e4",
metadata_created: "2014-07-15T08:59:54.381651",
metadata_modified: "2016-03-29T10:02:17.023637",
author: "Cabildo Insular de Tenerife",
author_email: "",
state: "active",
version: "",
creator_user_id: "6af82965-4e51-4fff-b011-c8b044ed910f",
type: "dataset",
resources:
[
{
resource_group_id: "82de018e-8bd5-4584-ba5b-275300a5bbeb",
cache_last_updated: null,
revision_timestamp: "2014-07-15T09:05:38.180599",
webstore_last_updated: null,
id: "593a55e3-fe09-46b8-aaf8-8ce654744639",
size: null,
state: "active",
hash: "",
description: "",
format: "geojson",
tracking_summary:
{
total: 0,
recent: 0
},
last_modified: null,
url_type: "upload",
mimetype: null,
cache_url: null,
name: "Centros de salud",
created: "2014-07-15T11:00:58.162465", url: "http://www.tenerifedata.com/dataset/d1826fd4-38e1-4e9a-a01e-560e035690e4/resource/593a55e3-fe09-46b8-aaf8-8ce654744639/download/centrosdesalud.geojson",
webstore_url: null,
mimetype_inner: null,
position: 0,
revision_id: "e0d03d59-3465-4e2c-bcd8-df714138543a",
resource_type: null
},
{
resource_group_id: "82de018e-8bd5-4584-ba5b-275300a5bbeb",
cache_last_updated: null,
revision_timestamp: "2014-07-15T09:15:28.676196",
webstore_last_updated: null,
id: "fff4fbbe-ecfd-445c-b4cc-6ed7152a07bf",
size: null,
state: "active",
hash: "",
description: "",
format: "geojson",
tracking_summary:
{
total: 0,
recent: 0
last_modified: null,
url_type: "upload",
mimetype: null,
cache_url: null,
name: "Farmacias",
created: "2014-07-15T11:14:58.060523",
url: "http://www.tenerifedata.com/dataset/d1826fd4-38e1-4e9a-a01e-560e035690e4/resource/fff4fbbe-ecfd-445c-b4cc-6ed7152a07bf/download/farmacias.geojson",
webstore_url: null,
mimetype_inner: null,
position: 1,
revision_id: "0b388f88-9b05-46d5-a0ea-2e954c342a8d",
resource_type: null
},
license_id: "cc-by",
relationships_as_subject: [ ],
num_tags: 1,
organization: null,
name: "medicina-y-salud",
isopen: true,
url: "http://www.tenerifecomercio.com",
notes: "Información georeferenciada y listados de centros de salud, farmacias, clínicas dentales y otros servicios sanitarios",
owner_org: null,
extras: [ ],
license_url: "http://www.opendefinition.org/licenses/cc-by",
title: "Medicina y salud",
revision_id: "0e9ef3ab-f955-4a8e-a962-4ba47c0d2ef0"
}