Network analysis in Python

June 3, 2018

Network analysis in Python

“Finding a shortest path using a specific street network is a common GIS problem that has many practical applications. For example navigators are one of those “every-day” applications where routing using specific algorithms is used to find the optimal route between two (or multiple) points”.


Automatic Generation of Walkable Paths in Buildings to Support Indoor Wayfinding (PDF)

June 3, 2018
Automatic Generation of Walkable Paths in Buildings to Support Indoor Wayfinding
“Abstract -We have created a prototype system that generates walkable paths in a building using AutoCAD floor plans. Our system is designed to work with the CampusGuide, a commercial indoor navigation system. Path-generation is done once for each floor plan, creating a network of walkable paths between all points of interest. The A*algorithm we have implemented takes roughly fifteen seconds to build paths for a

building floor, which is much quicker than what a human can do manually. The error
rate is fairly low, but still an issue for commercial use”

Mapping Coffee Shops+ Walkability

June 3, 2018

Mapping Coffee Shops+ Walkability

“In every city, you will find what we call “third places”, a type of environment allowing citizens with no particular affiliations to comfortably meet. If the home (first place) and the workplace (second place) are the usual social environments, third places provide another needed option. In his book “The Great Good Place”, urban sociologist Ray Oldenburg argues the necessity and importance of these three realms in our living environment in order to achieve a healthy and balanced life”


June 3, 2018

Open data heritage and smart objects to create the new digital ecosystem

The SmartDataNet project is the result of a call for tender launched by Piedmont Region in collaboration with CSI Piemonte.

Smartdatanet allows you to share and aggregate information produced by different services to create new applications, creating more intelligent and sustainable communities.

The flow of data is generated by Internet of things (such as cameras, traffic sensors, weather stations) and Internet of people (such as tweets, or smartphones’ signals).

It is a system interconnecting objects and people and aiming to improve the knowledge and analysis of our lives within complex environments.

The technological pillar of the ecosystem is represented by YUCCA, an open source platform oriented to the acquisition, sharing and reuse of data resulting both from Real Time and on-demand applications.


Slippy map tile generator for QGIS

May 29, 2018

Slippy map tile generator for QGIS

“This program is a slippy map tile generator for use with QGIS. All rendering is done by QGIS so what you see on your screen is what you’ll get in your output tiles. Functionally it is quite similar to the QTiles plugin. Here’s a comparison of the two:

Advantages of this program

  • All styling is done using QGIS.
  • Renders the map a section at time.
    This allows even very large datasets to be rendered.
  • Renders each zoom level separately.
    This means that scale-dependant feature visibility is honored.
  • Does not exhibit the rendering issues that QTiles has at tile edges:
    • Does not truncate point icons
    • Labels don’t shift
    • Patterned lines display correctly
  • Fast: 20 minutes to render a complex 60km × 70km topographic map with roads, water, POIs, etc. from levels 5 through 15 on a 3.5GHz i7.
  • Resistant to the QGIS bug that causes raster layers to sometimes not be displayed.
  • Copious progress status display
  • Simple Python script that can be easily modified to suit your needs.

Disadvantages of this program

  • No graphical interface.
  • Cannot be made to stop early without killing QGIS.
  • Rendering complex maps causes the QGIS GUI to temporarily freeze during some parts of the rendering process.
  • Lacks some of the additional options that QTiles offers.
  • Some tiles will be output that are not within the area of interest.
    This happens because large regions are rendered and sliced into tiles. All of a region’s tiles are written to disk without checking whether they are within the area of interest.
Comments are welcome, see the email link at the bottom of the page”

[ Nederland ] – QGIS

May 29, 2018

[ Nederland ] – QGIS

QUICK MAP SERVICES – Open catalog of geodata sources

May 29, 2018

QUICK MAP SERVICES – Open catalog of geodata sources and a way to add them to your GIS in one click

Geoinformation Enabling ToolkIT starterkit

May 21, 2018

Geoinformation Enabling ToolkIT starterkit

Share your maps, measurements, and sensors. Easily.

GET-IT allows you to easily share geospatial data on the web with simple actions.

The suite is the first open-source collaborative effort toward the integration of traditional geographic information with observational data.

DB Browser for SQLite

May 18, 2018

DB Browser for SQLite is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite.

It is for users and developers wanting to create databases, search, and edit data. It uses a familiar spreadsheet-like interface, and you don’t need to learn complicated SQL commands.

Getting Started With GeoPackage

May 18, 2018

Getting Started With GeoPackage

***** Identifying a GeoPackage *****

GeoPackage is an SQLite Database file with a .gpkg extension. If you are unsure whether a file is an SQLite database, you can use a binary or text editor to view the starting bytes of the file and see if they state SQLite format 3.

***** Opening a GeoPackage *****

There are a number of ways to open a GeoPackage.

  • For using a direct SQL interface, consider DB Browser for SQLite
  • For using a web application, consider using NGA’s application as long as the GeoPackage file isn’t too big
  • For using a desktop application, there are a number of options. We recommend choosing the GeoPackage implementation that is best suited for your operational environment.

The GeoPackage community tries to maintain a list of operational GeoPackage implementations and this list can be found on the implementations page. Additional information on specific products and versions of products that implement GeoPackage can also be found at You can search by specific versions of the GeoPackage standard. Note: Search for all implementing products.

***** Creating a GeoPackage *****

Similarly, if you wish to create a new GeoPackage from scratch or from an existing source file such as a ShapeFile or .csv, below are some suggestions:

  • For using direct SQL access, start with the empty geopackage template
  • For using a desktop application, refer to the implementations list above
  • For using a command line program, consider the GDAL vector and raster utilities
  • This blog post (The section titled “Creating a GeoPackage with Reference Data”) provides an example that describes steps for creating a GeoPackage using ogr2ogr. The post also provides information on how to add the SpatiaLite extension to enable further spatial analysis in SQLite.

***** Checking a GeoPackage *****

Using a direct SQL interface such as DB Browser is the easiest way to check a GeoPackage version. SQLite uses pragma statements to implement non-standard SQL functions. These statements can be executed just like any other SQL statement and where relevant, they return a result set. The two pragmas you need to know are:

  • PRAGMA application_id
    • 1196444487 (the 32-bit integer value of 0x47504B47 or GPKG in ASCII) for GPKG 1.2 and greater
    • 1196437808 (the 32-bit integer value of 0x47503130 or GP10 in ASCII) for GPKG 1.0 or 1.1
  • PRAGMA user_version
    • For versions 1.2 and later, this returns an integer representing the version number in the form MMmmPP (MM = major version, mm = minor version, PP = patch). Therefore 1.2 is 10200.

***** What is in a GeoPackage *****

Like other relational databases, GeoPackages contain a number of tables. These tables fall into two categories, user-defined data tables and metadata tables. GeoPackages contain two mandatory metadata tables, gpkg_contents and gpkg_spatial_ref_sys. The presence of other metadata tables is dictated by the content being stored (see Content Types). The name of the user-defined data table is the primary key for gpkg_contents and generally is a foreign key for content-specific metadata tables.


The gpkg_contents table is the table of contents for a GeoPackage. The mandatory columns in this table are:

  • table_name: the actual name of the user-defined data table (this is also the primary key for this table);
  • data_type: the data type, e.g., “tiles”, “features”, “attributes” or some other type provided by an extension;
  • identifier and description: human-readable text (“identifier” is analogous to “title”);
  • last_change: the informational date of last change, in ISO 8601 format (for practical purposes, RFC3339 applies);
  • min_xmin_ymax_x, and max_y: the spatial extents of the content. (This is informational and often used by clients to provide a default view window.);
  • srs_id: spatial reference system (see next subsection).


For content that has spatial reference (including but not limited to tiles and features), each row in contents must reference a coordinate reference system which is stored in the gpkg_spatial_ref_sys table. The mandatory columns in this table are:

  • srs_namedescription: a human readable name and description for the SRS;
  • srs_id: a unique identifier for the SRS; also the primary key for the table;
  • organization: Case-insensitive name of the defining organization e.g., EPSG or epsg;
  • organization_coordsys_id: Numeric ID of the SRS assigned by the organization;
  • definition: Well Known Text definition of the SRS.

At least three rows must be in this table. There must be one row for each of the following srs_id column values:

  • 4326: latitude and longitude coordinates on the WGS84 reference ellipsoid,
  • 0: undefined geographic coordinate reference systems, and
  • -1: undefined Cartesian coordinate reference systems.

However, many more rows that reference other coordinate reference systems (CRSs) are possible. Using CRSs incorrectly is one of the most common ways to break GeoPackage interoperability. When in doubt, discuss CRSs with a geospatial expert to ensure that you are using an appropriate coordinate reference system for your situation.