This article only applies to movement data

This article is only relevant when working with movement data, not when working with time series data.

You can read more about the differences between the two in this article.

What is the GeoJSON properties file ?

One of the ways of defining the structure of your .geojson files is by uploading a GeoJSON data properties file.

This file is a .csv file where each row specifies what kind of data a property in your .geojson file represents.

  • Row 1 specifies the details of the first property

  • Row 2 the details of the second property,

  • …​

Contents of the data properties file

The data properties file is a .csv file where each row specifies what kind of data a property in your .geojson file represents.

Each of the rows specifies the following settings about a property:

  • GeoJSON property name (string): the name of the property in the GeoJSON file.

  • UI property name (string): The name that should be shown in the UI to represent this property. This should be a human-readable string.

    For example, if the property is called country_name or sensor_id in the GeoJSON file, you might prefer to show it to the user without those underscores. In that case, you specify the UI property name to be Country name or Sensor id.

  • Type (string with special syntax): the type of the data property. This is used to indicate which column contains the id and to specify whether a property is a numeric property, a category (enum), or text. See the next section for the syntax.

  • Description (string): a human-understandable description of what the property represents. This is for example used in tooltips in the UI.

  • Aggregation interval (number): the analytics engine maps numeric properties to bins or intervals.

    For example if you have a data set containing the population count of each country over time and your GeoJSON file defines the countries, one of the properties in the GeoJSON file could be the land area measured in square kilometers. Using a value of 10000 will tell the analytics engine to report statistics on this land area in intervals of 10000 square kilometers: [0,10000[, [10000, 20000[, [20000,30000[, …​ . You won’t be able to distinguish between countries with an area of 5000 and 7000 square kilometers because both are mapped onto the same interval [0,10000[ . This setting is only used for numeric properties.

  • No data value (number, string or empty): some data sets use a special value to indicate that the actual value for a property is unknown or not set.

Example

The following is an example of a GeoJSON data properties file.

For readability, it is displayed as a table and not as a .csv file (but you can download the .csv version here):

name

Name

id:string

The name of the country

0

postal

Postal

string

The postal code

0

pop_est

Population

long

The population of the country

1000

continent

Continent

enum

The continent

0

region_un

Region

enum

The region

0

subregion

Subregion

string

The subregion

0

In the above example, the line

pop_est

Population

long

The population of the country

1000

indicates that the corresponding property

  • Is named pop_est in the GeoJSON file

  • But must be displayed as Population in the UI

  • Contains numbers that are stored as longs

  • The description to use for that column is "The population of the country"

  • The aggregation interval for this numeric property is 1000

  • There is no special value that indicates that there is no data for this property

Syntax of the type property

The type property definition consists out of 3 parts:

<prefix>:<type>:<additional_info>
  • The prefix:

    • id: use this prefix for the column representing the identifier of the record. There can be only one property defined as the id.

    • displayname: use this prefix for the column that contains a human-readable name of the area or measurement device. The value of this property will be shown in the UI.

      For example, if you have a GeoJSON file defining sensors where each feature or sensor has properties like:

      {
        "properties": {
          "sensor_id": "DGWBETLJGDIUTEDSG",
          "sensor_name": "Kitchen sensor"
        }
      }

      While the sensor_id property is used as id (and also used in your measurement .csv files to indicate which sensor took the measurement), you don’t want that "DGWBETLJGDIUTEDSG" to show in the UI when referring to that sensor. Instead, you’ll want to use the value of the sensor_name property, which is done by marking it as the displayname:.

      There can be at most one property defined as the display name. When none of the properties are marked as such, the id column will be used as display name.

    • None of the other properties take a prefix

  • The type is one of the following: string, float, double, short, int, long or enum.

    • string: indicates that this column contains text.

    • float: indicates that this column contains a single precision (32 bit) floating point number.

    • double: indicates that this column contains a double precision (64 bit) floating point number.

    • short:: indicates that this column contains a half precision (16 bit) integer number in the range [-32768, 32767].

    • int: indicates that this column contains a single precision (32 bit) integer number in the range [-2147483648, 2147483647].

    • long: indicates that this column contains a single precision (64 bit) integer number.

    • enum: indicates that this column contains a values that are categories or enumerations. For example different brands of a car, or types of a vessel.

You can use the following flowchart to assist you in selecting the correct type:

Figure 1. Flowchart to assist you in selecting the correct type