Category Archives: GIS

Setting Up a Geospatial Python tool box with conda

Anaconda

I’m using Ubuntu 15.04 and it comes with Python 2.7 and Python 3.4 pre-installed. Installing into this Python installation requires root access to the system and it may be better to use a virtual environment when installing packages with pip, which is a little confusing. Also, if you are on a Windows machine installing packages may be complicated.

To me the easier solution to setting up a geospatial environment  is to use Conda (a open source,  cross platform package manager application that installs, runs, and updates packages and their dependencies) and doesn’t require administrator privileges to install anything.

To install Conda, you will download Anaconda or Miniconda (both are free). Anaconda is a Python distribution that  includes the most popular Python packages for science, maths, engineering, and data analysis, while Miniconda is just a conda and python installation.

Continue reading

Use Overpass API to get OSM data

Overpass API

Have you ever needed very specific data from openstreetmap and don’t want to download the whole state or country? The solution is Overpass API.

The Overpass API (formerly known as OSM Server Side Scripting, or OSM3S) is a read-only API that serves up custom selected parts of the OSM map data. It acts as a database over the web: the client sends a query to the API and gets back the data set that corresponds to the query.

http://wiki.openstreetmap.org/wiki/Overpass_API

We are going to try the Overpass QL as query language. The whole query source code is divided in statements. We set the type of element that we want: node, way, relation or area. and then filter by tag. Like this

node[name="Foo"];
way[name="Foo"];
rel[name="Foo"];
area[name="Foo"];

Continue reading

Install postgis 2.1 and QGIS on ubuntu 15.04

This is tested on a fresh installation of Ubuntu 15.04.


$ sudo apt-get install postgresql postgresql-contrib postgis postgresql-9.4-postgis-2.1 pgadmin3

# add a new user (need to be authenticated as a superuser)
$ sudo -u postgres createuser --superuser mysuperuser

# Set password for created user
$ sudo -u postgres psql postgres
postgres=# \password mysuperuser

Enter new password:mysuperuserpassword
Enter it again:

# create password for user postgre
$ sudo su
$ su - postgres

Now you can access the PostgreSQL prompt with the command:
$ psql

And then change the password for postgres role by typing :
$ \password postgres
Enter new password: postgres

Continue reading

Georeferencing a scanned map with QGIS

Some times you need to have vector data that haven’t been digitized yet, like some old maps with building footprints or street lines. We can scan a map, georeference it in QGIS, and then digitize those features to create new vector layers. Scanned maps don’t contain spatial reference information, so to digitize we need to reference the raster in a specific coordinate system.

In this example we will georeference a map of the city of Barcelona with the layout of the old medieval walls (XIII-XIV) with QGIS.

Continue reading

Getting vector data from OpenStreetMap

Let’s say that we need the Barcelona’s subway lines in geojson for our project, and we decided to use OpenStreetMap data. There is plenty of ways for getting OSM data, the most common is using their API, or the  geofabrik download page,  but this time we gonna use metro-extracts from mapzen.

We look for Barcelona. There is a lot of file formats there:

metro-extracts-barcelona

metro-extracts-barcelona

Continue reading

Turf: GIS en la web

Los chicos de mapbox nos han traído un regalito muy especial este fin de año, una nueva librería de javascript llamada Turf.  Turf permite hacer operaciones geospaciales  (geoprocesamiento) directamente desde el navegador (#inabrowserbaby).

Turf es ligero, rápido y opensource (chupate esa ArcgisOnline)


Continue reading

Selección por rectángulo en CartoDB

CartoDB funciona con PostGIS así que podemos usar los mismos comandos, salvo alguna pequeña diferencia que luego veremos.

Primero hay que crear un polígono rectangular que nos sirva para hacer la selección de aquellos puntos contenidos dentro de el. Usamos ST_MakeEnvelope, que crea un rectángulo a partir de unas x/y mínimas y máximas:

ST_MakeEnvelope(double precision xmin, double precision ymin, double precision xmax, double precision ymax, integer srid=unknown);

Continue reading

GeoJSON, ¿el formato del futuro?

En 2008 se define la especificación de un nuevo formato para datos geográficos basado en JSON (JavaScript Object Notation) llamado GeoJSON. Un objeto GeoJSON puede representar una geometría, features, o una colección de features y soporta geometrías de tipo: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, y GeometryCollection.

Las features en GeoJSON contienen una geometría y propiedades adicionales, las colecciones de features son simplemente una lista de features. La estructura de los datos en GeoJSON es siempre un objeto, que consiste en una colección de parejas de nombre/valor (también llamados miembros). Este formato permite representar objetos en el espacio, usando sus coordenadas y añadirles propiedades, que son algo así como los campos de una tabla de atributos.

Continue reading

GeoGit: La importancia del control de versiones

Cualquiera que haya trabajado en un proyecto, por pequeño que sea, se ha encontrado en la situación de haber hecho algo mal y tener que volver a empezar en el punto en el que se equivocó. Los desarrolladores de software usan programas de control de versiones distribuidos, como Git, que facilitan mucho el trabajo, sobre todo cuando hay varias personas trabajando en un mismo proyecto y hay que “juntarlo” todo.

En OpenGeo están desarrollando una librería para habilitar el control de versiones distribuidos (GeoGit). Esta biblioteca no es directamente compatible con Git y Github, pero adapta los conceptos básicos de Git a los datos geoespaciales.

Continue reading