Cutting and Intersecting Vector Layers in QGIS

Le Fri 02 October 2015

Recently there have been some changes to the regulations governing the use of RPAS (Remotely Piloted Aeronautical Systems) in New Zealand. This is a response to the rapid rise of ownership and use of model aircraft of one sort or another, and the irresponsible use of them by certain elements. I have set myself the challenge of teaching myself GIS software and as a good useful project set myself the task of making airspace maps of the region that interpret the CAA (Civil Air Authority) rules and how they apply to RPAS pilots and the geography. Hopefully I will be able to produce a printable series of maps that people can refer to to see what, if any, permissions they need to fly there, and how high they can fly.

Sample from the draft Airspace Map

The software I am using is the open source QGIS 2.2 package (formerly know known as QuantumGIS). You can find it here;

This guide is available as a pdf if that is your preference. You can find it here: GIS_Cutting_and_Intersecting_Vector_Layers.pdf


The Task

What I envisage is a series of coloured shapes that represent the different level of permission an RPAS owner will need to obtain, how high they can fly, and whether they need to advise the local control tower. The image above is a draft of the type of map I am trying to achieve. To get the various zones I need to break up the New Zealand airspace maps in a way that are meaningful for the RPAS pilot.

Part of the regulations governing where an RPAS pilot can fly is whether they have permission of fly over an area. The local and regional councils of New Zealand have been working hard to develop policies that provide guidance on where RPAS can be used over the public land they are responsible for. For the most part they have been very wise and pragmatic in their approaches and I am pleased to see some good policies have come out. Most of the Councils have GIS layers available for their parks and reserves, and with their policies on RPAS in hand I can see where a particular council has granted permission to fly RPAS and where they are not allowed.

With the GIS layers of the different Airspaces, and the Council parks I can create some new layers that capture the airspace information and whether permission has been granted to fly over it. So I will be using one layer to chop up another layer using the good old boolean operations like Union, Intersection, and Difference.

The First Thing

The layers must be using the same Coordinate Reference System (CRS). If they're not you will need to do a SaveAs on the layers to create a new copy of the layer with a new CRS which you can select at the time you do the SaveAs.

Our Layers

To illustrate this, I am going to use two vector layers.

Airspace Layer

The 4km Aerodrome Zones Layer
Click on the image for a larger view

The airspace layer that has been calculated using a 4km buffer operation around the Wellington airport property boundary, and around each of the listed Helipads (one on the Hospital and the other on Queen's Wharf near the CBD). Yep, it covers most of Wellington.

Council Parks and Reserves

The Wellington Region Parks and Reserves Layer
Click on the image for a larger view

This is the local council's parks and reserves. I have not removed those where RPAS have been specifically banned because this is just an illustration...right?

Both Layers

The Wellington Region Parks and Reserves and 4km Airspace Layers
Click on the image for a larger view

For this exercise I want to only capture the parks and reserves that fall within the 4km zone, and capture the 4km zone where it does not cover a park or reserve where permission has been granted to fly an RPAS.

Trimming the 4km Airspace Zone

I want to create a shape that shows those areas within the 4km Airspace zone but the RPAS pilot would need to gain permission of the properties over which they intend to fly. Because the public parks have been designated as being OK to fly in, I need to cut those areas out of the 4km Airspace zone shape. This is just a boolean difference operation.

You can access this through the menu bar as shown below. Vector >> Geoprocessing Tools >> Difference.

Accessing the Vector Processing Menu

This will pop up a new dialogue like the one shown below.

Vector Difference Dialogue Box

Use the drop down selectors to choose the layer you want to chop up and which layer you wish to use as the “cutter”. You will notice that there is a tick box under each selector to allow you to use only selected parts of a layer rather than the whole layer.

Choose a name and location for the new shapefile that will be produced by this operation.

There is a tick box to automatically add the new layer to the project map if you wish.

When you're ready, hit the OK button.

I have found the processing bar at the bottom of the dialogue to be somewhat misleading. It goes to 100% in an instant and then sits there apparently doing nothing. Don't be deceived, it is working on the process and it can take some time – or at least it does on my old ex-work computer. Wait for the process to pop up the “file created” message before closing the dialogue.

Load the new layer, and admire the patchy shape you have created. In this example this new shape is where an RPAS pilot must obtain permission from the landholder's to overfly, and must remain below the height of the surrounding buildings and trees. If they intend to fly up to 120m above ground level in this zone they need to get prior permission from the airtraffic control too. As I say there would be an additional slice out of this shape along the airport flight paths where RPAS cannot be used, but that would be another boolean operation on the shape we have just produced.

The 4km Airspace Layer with Parks and Reserves Cut Out
Click on the image for a larger view

Trimming the Parks and Reserves Layer

The process is the same as for the 4km airspace zone except that we will use an intersect operation.

This will produce a new shape file that represents where permission has been granted to fly AND it is within the 4km Airspace.

Accessing the Vector Processing Intersection Menu

Vector intersection Layer

Hit OK and wait for the process to finish.

Vector operation complete message box

We now have a new layer which is the parks and reserves that are within 4km of the airport and the helipads.

The Parks and Reserves within 4k of an Aerodrome
Click on the image for a larger view

It is worth noting that data is retained through the process and so in this example the data such as park names, who manages them, etc. is still available in the new layer that has been produced by the boolean operation. This is useful because it means that despite chopping a layer into tiny bits, I can still find out things about the features within the layer. In this example, I can still find the name of each park within the 4km zone by using the feature information tool.

Putting it together

So this is the pair of new shapes produced.

The New Vector Layers
Click on the image for a larger view

The new yellow layer is the local parks and reserves where permission to fly an RC aircraft has been granted by the local council but the user would need to keep below the surrounding trees and building levels in order to not have to advise the airport control tower.

The new red layer is the residential and business areas where the RC Aircraft user would need to gain the land owner and occupier first before being able to fly over the property. They would also need to keep below the level of the tops of the surrounding trees and buildings.

Of course this is not an entirely accurate map because I have not removed the obvious areas where it would be a problem to fly a Remote Piloted Aircraft such as cemeteries, the beaches at the end of the runway etc. In other words if you are in Wellington with an RC airplane, don't use these images as a guide about where to fly.

Hopefully this is a useful example of using some boolean operations in QGIS.

Par Hamish Trolove, Catégorie : Tutorials

Tags : QGIS / Map Making / Graphics / GIS /