Thursday 31 January 2019

aviation_gis_tools: new approach

If you have followed previous posts and dig a bit into code you notice that there is a room for improvement. Because of nature of main issue - calculation of  coordinates based on various input data (reference point in different coordinate formats, bearings, magnetic variation, local Cartesian coordinate system etc.) it is obvious that well designed classes are a good choice to deal with it. We also want to track other information which I have already mention previously.
We have also started dealing with something else: parsing and extracting data from aeronautical sources. So far we are able to

Wednesday 30 January 2019

Points in local Cartesian coordinate system - multiple points

It should be unsurprisingly that this  post will be an 'extension' of the solution described in previous one: QGIS plugin to deal with many points in local Cartesian coordinates system. It is likely that data you will deal with will be in a tabular form, or in a form which tabular form can be obtain more or less easily.

Saturday 26 January 2019

Challenge: QGIS Plugin to insert points in 'Local Cartesian' coordinates


In the previous post I create class, that allows easily to calculate latitude and longitude of point that is given in local Cartesian coordinates. Now it's time to make life even more easier - custom QGIS plugin. The  result is as below:

Sunday 20 January 2019

aviation_gis_tools: Point given in 'Local Cartesian' coordinate system

Sometimes points are given in Cartesian coordinates (x, y) with origin of coordinate and orientation of X and Y axes. There are a few approaches that we can transform from local Cartesian coordinate system (x, y) into global geographic coordinate system (latitude, longitude).
Here I am going to use approach similar to those described in post. In other words I will treat x, y coordinates and information about axes orientation as point with offset against reference point - origin of the local coordinates in this case.

LocalCartesianPoint is a class that will calculate latitude and longitude point
Constructor of LocalCartesianPoint class:

class LocalCartesianPoint:
    def __init__(self, origin_point: BasePoint, x_axis_brng: Bearing, y_axis_brng: Bearing, x: Distance, y: Distance):
        self.origin_point = origin_point
        self.x_axis_brng = x_axis_brng
        self.y_axis_brng = y_axis_brng
        self.x = x
        self.y = y
        self._calc_dd_lat = None
        self._calc_dd_lon = None

Saturday 12 January 2019

aviation_db: QGIS plugin to insert obstacles

So, if we have got aviation_db (created in post)  it's time to populate it with some real data. We have learnt so far, that obstacle data are published in variety of forms in aeronautical publications, especially the 'spatial' part of them: 'direct' coordinates, distances and bearings against point (threshold, aerodrome reference point), offset against distance and bearings against specified points, 

Monday 7 January 2019

aviation_postgis_db1: tables

NOTE: The aviation_postgis_db1 is spatial database for training and educational purposes only: that means that is rather used to learn and practice how to use Python, GIS software and PostGIS to parse, create, maintain and visualize aviation data that to perform real work, at least at this stage of develpment cycle.
The aviation_postgis_db1 is spatial database to keep aviation data that can be obtained from various online sources such as: eAIP portals, FAA website with data (DOF, NASR). Content of databse is in limited scope: that means that some selected attributes are used to model aviation world. Selection is based on what information can be found in aeronautical publications (eAIP, FAA Digitial Obstacle File ) and etc.

Country table:

CREATE TABLE country (
 rec_id serial,
 ctry_icao_code char(2) PRIMARY KEY,
 ctry_name varchar(100) NOT NULL
);

Saturday 5 January 2019

PostGIS aviation_database and introduction to real world examples

I have covered some basic but indispensable functionality (distance, coordinate, bearing, local coordinates etc.) so far. I have also developed some tools (QGIS plugins) that allows us to easily create features that are common in aviation world:
  • polygons based on circles and circle parts (useful to create airspaces)
  • creating points based on bearing, distance, offset against reference point - which is common way of defining location in aviation
Now, it's time to move on and show how those tools can be used in order to create and manage data with aeronautical content. It will require to create a spatial database and new tools.

Wednesday 2 January 2019