up
i

Products - Map Generator

Czech Czech

Introduction

Map Generator is used for creating statistic maps. Geographic statistic map (next for short map) is intended for graphic representation of certain value in map with color background, where backgroud color in given position represents intensity of value with regard to choosed color scale.

Rain summary

Maps contain color background, aditional informations (borders, cities…) and legend with color scale and value ranges, that represents particular background colors.


Basic informations

Coordinate System

Map Generator uses interally Cartesian coordinate system external link. System is unitless - used units does not matter. Only is required to define relation between coordinate system unit and pixel on bitmap (map scale).

For creating maps of the Czech Republic we use Gauss-Krüger S-42 external link coordinate system. Also is possible to use any other coordinate system, that can be transformed to two dimensional cartesian coordinates, e.g. WGS 84 external link.

Quantity

Quantity is type of values, displayed in map – it can be any statistical value, such as percent of unemployment, measured concentration of substance (air quality), temperature, amount of precipitation (or other hydrology data) etc.

Input data

Input data are primary values, whose processed to create map. If we can create map, we need input data of our quantity. Every datum of input data must have following informations:

  • Geographic position of place, where value was obtained or measured
  • Name of place, where value was obtained – for example name of the measuring station
  • The obtained or measured value

Input data may be loaded into program from XML files, or using extensions is possible to connect program to any external data source.

Color scale

Color scale is table for conversion value range to color.

Matrix

Matrix, a.k.a grid is two-dimensional value array, that is basic block of data processing in Map Generator. For our purposes we divide matrixes to:

  1. Input matrix contains prepared values, such as terrain altitudes, population density etc. It can be loaded from file or database
  2. Computed matrix contains values, that are result of interpolation of input values
  3. Result matrix contains values, that are result of combination of values in another matrixes

All the matrixes, that come together into map generation process must have equal sizes (cell size and cell counts in both axis) and geographic position of left bottom corner.


Data processing

While map generation, input values are processed using various algorithms.

Interpolation

Interpolation is used for infer values into cells of computed matrix. Those values depends from input values. Every computed matrix must have associated interpolation algorithm. At this time is implemented IDW external link algorithms.

Princip IDW

On image you see matrix, that have input values in some cells. Other cells are void - it's values are unknown, because at those places are not obtained (or measured) input values.

For each of void cell is using IDW computed weighted average from input values, where weight is distance between computed cell center and place where input value was given. Nearer input values affects result value more, further less. This IDW explanation is pretty simple - reality is more difficult.

Modification

Modification traverse cells in one or more matrixes, perform computation using particular algorithm and store result into original or newly created matrix.

This allow to modify matrix values -perform corrections, combine their values etc.

Rendering

Rendering get matrix, that contain final values and create map background. Every cell value is converted into color and stored into particular pixel in map.

Rendering

In next phase, color background is repainted with vector shapes – borders, legend, measuring stations etc. The result is (by default) a PNG image. Other types (BMP, GIF, JPG) are also supported. Using Java API is also possible to join more generation processes to animated GIF.


Data processing control

Process of map generating can be very flexible. Some maps are created from more matrixes, others only from one. Also other algorithms ale optional and full configurable.

There are two ways to take control over data processing:

  1. Using XML file (the Runset)
  2. Using API

XML Runset

Runset takes control over data processing in Map Generator from loading input values, interpolations into matrixes, combinations, modifications, rendering, to storing final map into file or database.

Runset is XML file, where particular XML elements represents objects in Map Generator. By editing Runset it is possible to change Map Generator behavior and tune the result by our requirements.

Java API

MapGenerator is created on Java SE external link platform. Using Java language is possible to control map generating. You can create own Java project in Eclipse external link IDE (for example) and incorporate MapGenerator.jar into it. By calling API in MapGenerator classes is possible to control map generating process.


Extending program

While developing of Map Generator, we focused to flexibility and extensibility. MapGenerator is able to generate statistical maps from every area and it's abilities can be extended. Is possible to develop own combination a modification algorithms, input data sources, map writers, graphic objects (shapes) etc.

This extensibility in practice is provided by ability of Java to load classes at runtime using classloader external link. Most of objects in XML Runset have attribute class, that contain Java class-name, that provide required functionality.

In the case that user of Map Generator found existing Interpolation algorithm as unsatisfactory, it is possible to program own one and in Runset replace attribute class content class="idea.map.interpolator.IDWInterpolator" by name of your own class. Only one condition is, that user class must be derived from class idea.map.interpolator.AbstractInterpolator, to comply contract between user class and rest of program.

ISKO Map Generator

Example of Map Generator extension is project ISKO Map Generator, that we develop for CHMU external link. This program generate air pollution maps from ISKO 2 database.

ISKO Map Generator diagram

Maps are hourly generated from values in DB ISKO2 and stored back into this database. Two computing servers cooperative divide this work, in the case that one fail, second machine computes maps with greater priority in all available time.

For presentation is used JSF application IskoPollutionMapView external link on application server.

MapGenerator SDK

This SDK is for users with knowledge of Java language. It contain API documentation of Map Generator classes and Eclipse project MapGeneratorExtension - set of user classes samples. This source code can be used as starting point to learn, how to extend Map Generator by own functionality.

UserModificator.java Sample of user modificator algorithm - modify one matrix
UserCombinator.java Sample of user modificator algorithm - combines three matrixers to another
UserInterpolator.java Skeleton of user interpolation algorithm
MapWriterToFtp.java Map writer, upload map to FTP server
DataValuesFromPgSQL.java Load input data from PostgreSQL table
ColorScaleFromPgSQL.java Load color scale from PostgreSQL table
TextWithShadow.java Sample of user defined simple shape - shadowed text
Hamburg.java Sample of user defined complex shape - city Hamburg
RotatedRectangles.java Demonstrates rotation of cartesian positions
SegmentedPolygon.java Demonstrates rotation of polar positions
RunSet.xml Sample of Runset, shows how to use sample classes
HamburgPM10.xml Sample of Runset, shows how to create simple pollution map
RunMapGeneratorExt.java Does this same job as RunSet.xml, but using Java API

You Want to Create an Own Maps ?

You can create own maps, using Map Generator. Before trying it, you need following:

  • Be familiar with XML - you must be able to create and modify Runsets
  • Understand, how Map Generator works - read the User Guide
  • Be familiar with GIS - you must understand how coordinate systems works and more
  • Have input (measured) data, and be able convert it to XML format
  • Have GIS data for area, where you want to create map, e.g. city or country borders, etc.
  • Acquire any variant of Map Generator
  • For coding own Map Generator extensions, you need knowledge of Java language

License

Program Map Generator is available in following variants:

  1. Free edition - free for non-commercial using or testing. Allow control using XML Runset.
  2. Standard edition - allow to create maps for internal company/organization use only. Contains MapGenerator SDK for create own extensions.
  3. Professional edition - allow to sell created solution to another organization.

Professional and Enterprise editions contains MapGenerator SDK. It allows extending and control program using Java API.

If you are interested to acquire any variant, contact as.


Purchase

ItemPriceDescription
Standard edition 900 € License per one developer, with Annual Technical Support
Professional edition 3000 € License per one developer, with Annual Technical Support
Annual Technical Support 300 € License per one developer, email based support

We can also develop custom Map Generator extension for you or prepare geographic data, create Runsets etc. Price of this work depends from amount of time, and it must be specified individually.

If you are interested about extending Map Generator (connect to own database for example), and don't have required skills of Java programming - contact as.

If you want to create own map and need GIS data - contact as.


Documentation

Download User Guide.


Maps gallery

Map of concentration SO2

SO2 concentration, hourly average, generated from ISKO2 database.

Map of concentration SO2

Dust above central Europe

On the 24th March 2007, many countries of central Europe were covered by dust, falling with the rain. The origin of this dust was from eastern Ukraine.

Dust above central Europe, 24-03-2007

Data source - CHMI external link

Temperature Inversion Impact Air Quality

Czech TV, channel CT24 - World Weather 19.1.2009 external link

CT24 archive stream

Impact of winter temperature inversion external link to Air Quality in the Czech Republic.