Outdated version of the documentation. Find the latest one here.

7.2. Lesson: Analiza Vectorială

De asemenea, datele vectoriale pot fi analizate, pentru a descoperi modul în care diferite entități interacționează între ele, în spațiu. În GIS există o multitudine de funcții dedicate analizei, și de aceea nu le vom parcurge pe toate. Mai degrabă, ne vom pune o întrebare și vom încerca să găsim un răspuns cu ajutorul instrumentelor pe care le oferă QGIS.

Scopul acestei lecții: De a pune o întrebare și de a o rezolva folosind instrumentele de analiză.

7.2.1. basic Procesul GIS

Înainte de a începe, ar fi utilă o scurtă trecere în revistă a procesului pe care îl vom folosi la rezolvarea oricărei probleme GIS. Pașii care trebuie urmați sunt:

  1. Definirea Problemei

  2. Obținerea Datelor

  3. Analiza Problemei

  4. Prezentarea Rezultatelor

7.2.2. basic Problema

Let’s start off the process by deciding on a problem to solve. For example, you are an estate agent and you are looking for a residential property in Swellendam for clients who have the following criteria:

  1. Să fie situată în Swellendam.

  2. Trebuie să fie situată la o distanță de conducere rezonabilă, față de o școală (de exemplu, 1 km).

  3. Trebuie să aibăo dimensiune de peste 100m pătrați.

  4. Să fie situată sub 50m față de un drum principal.

  5. Să fie situată la maximum 500m față de un restaurant.

7.2.3. basic Datele

Pentru a răspunde la aceste întrebări, vom avea nevoie de următoarele date:

  1. Proprietățile rezidențiale (clădirile) din zonă.

  2. Drumurile din jurul și din cadrul orașului.

  3. Amplasarea școlilor și a restaurantelor.

  4. Dimensiunea clădirilor.

All of this data is available through OSM and you should find that the dataset you have been using throughout this manual can also be used for this lesson. However, in order to ensure we have the complete data, we will re-download the data from OSM using QGIS’ built-in OSM download tool.

Note

Although OSM downloads have consistent data fields, the coverage and detail does vary. If you find that your chosen region does not contain information on restaurants, for example, you may need to chose a different region.

7.2.4. basic Follow Along: Startarea unui Proiect

  • Deschideți un nou proiect QGIS

  • Use the OpenStreetMap data download tool found in the Vector ‣ OpenStreetMap menu to download the data for your chosen region.
  • Salvați rezultatul ca osm_data.osm, în folderul exercise_data.

  • Note that the osm format is a type of vector data. Add this data as a vector layer as usually Layer ‣ Add vector layer..., browse to the new osm_data.osm file you just downloaded. You may need to select Show All Files as the file format.
  • Selectați osm_data.osm, apoi faceți clic pe Open

  • În caseta de dialog care se deschide, selectați toate straturile, cu excepția straturilor other_relations și multilinestrings:

../../../_images/select_osm_layers.png

Acest lucru va importa datele OSM în hartă ca și straturi separate.

The data you just downloaded from OSM is in a geographic coordinate system, WGS84, which uses latitude and longitude coordinates, as you know from the previous lesson. You also learnt that to calculate distances in meters, we need to work with a projected coordinate system. Start by setting your project’s coordinate system to a suitable CRS for your data, in the case of Swellendam, WGS 84 / UTM zone 34S:

  • Deschideți dialogul Proprietățile Proiectului, selectați CRS și filtrați lista pentru a găsi WGS 84 / UTM zone 34S.

  • Clic pe OK

We now need to extract the information we need from the OSM dataset. We need to end up with layers representing all the houses, schools, restaurants and roads in the region. That information is inside the multipolygons layer and can be extracted using the information in its Attribute Table. We’ll start with the schools layer:

  • Faceți clic-dreapta pe stratul multipolygons din Lista straturilor dvs., apoi deschideți dialogul Proprietăților Stratului.

  • Mergeți la meniul General.

  • În Subsetul Entităților faceți clic pe butonul [Query Builder] deschide dialogul Query builder.

  • În lista Cămpurilor din partea stângă a acestui dialog, derulați până când veți vedea câmpul amenity.

  • Faceți clic pe el o dată.

  • Faceți clic pe butonul All de sub lista Valori:

Acum, trebuie să indicați aplicației QGIS să arate doar poligoanele în care valoarea amenity este egală cu school.

  • Dublu-clic pe cuvântul amenity din lista Câmpurilor.

  • Priviți ce se întâmplă în câmpul ExpresiIor de filtrare specifice furnizorului de mai jos:

../../../_images/schools_query.png

A apărut cuvântul "amenity". Pentru a construi restul interogării:

  • Faceți clic pe butonul = (de sub lista Operatorilor).

  • Dublu-clic pe valoarea school din lista Valorilor.

  • Clic pe OK, de două ori.

This will filter OSM’s multipolygons layer to only show the schools in your region. You can now either:

  • Redenumirea stratului OSM filtrat în schools, și re-importarea stratului multipolygons`din :kbd:`osm_data.osm, SAU

  • Duplicarea stratului filtrat, redenumirea copiei, ștergerea Query Builder și crearea noii dvs. interogări în Constructorul de Interogări.

7.2.5. moderate Try Yourself Extrageți Straturile Cerute din OSM

Using the above technique, use the Query Builder tool to extract the remaining data from OSM to create the following layers:

  • roads (din stratul OSM lines)

  • restaurants (din stratul OSM multipolygons)

  • houses (din stratul OSM multipolygons)

Ați putea re-utiliza stratul roads.shp pe care le-ați creat în lecțiile anterioare.

Check your results

  • Save your map under exercise_data, as analysis.qgs (this map will be used in future modules).
  • In your operating system’s file manager, create a new folder under exercise_data and call it residential_development. This is where you’ll save the datasets that will be the results of the analysis functions.

7.2.6. basic Try Yourself Găsiți drumurile importante

Some of the roads in OSM’s dataset are listed as unclassified, tracks, path and footway. We want to exclude these from our roads dataset.

  • Deschideți Constructorul de Interogări pentru stratul roads, clic pe Clear și construiți următoarea interogare:

    "highway"  != 'NULL' AND "highway" != 'unclassified' AND "highway" != 'track' AND "highway" != 'path' AND "highway" != 'footway'

You can either use the approach above, where you double-clicked values and clicked buttons, or you can copy and paste the command above.

Acest lucru ar trebui să reducă imediat numărul de drumuri de pe hartă:

../../../_images/correct_roads_filter.png

7.2.7. basic Try Yourself Convertiți CRS-ul Straturilor

Because we are going to be measuring distances within our layers, we need to change the layers’ CRS. To do this, we need to select each layer in turn, save the layer to a new shapefile with our new projection, then import that new layer into our map.

Note

In this example, we are using the WGS 84 / UTM zone 34S CRS, but you may use a UTM CRS which is more appropriate for your region.

  • Faceți clic-dreapta pe stratul roads din panoul Layers.

  • Clic pe Save as...

  • In the Save Vector As dialog, choose the following settings and click Ok (making sure you select Add saved file to map):
../../../_images/save_roads_34S.png

Noul fișier shape va fi creat, iar stratul rezultat va fi adăugat la hartă.

Note

If you don’t have activated Enable ‘on the fly’ CRS transformation or the Automatically enable ‘on the fly’ reprojection if layers have different CRS settings (see previous lesson), you might not be able to see the new layers you just added to the map. In this case, you can focus the map on any of the layers by right click on any layer and click Zoom to layer extent, or just enable any of the mentioned ‘on the fly’ options.

  • Eliminați vechiul strat roads.

Repeat this process for each layer, creating a new shapefile and layer with “_34S” appended to the original name and removing each of the old layers.

Once you have completed the process for each layer, right click on any layer and click Zoom to layer extent to focus the map to the area of interest.

Now that we have converted OSM’s data to a UTM projection, we can begin our calculations.

7.2.8. basic Follow Along: Analiza Problemei: Distanțele Dintre Școli și Drumuri

QGIS vă permite să calculați distanțele față de orice obiect vectorial.

  • Make sure that only the roads_34S and houses_34S layers are visible, to simplify the map while you’re working.
  • Faceți clic pe instrumentul Vector ‣ Geoprocessing Tools ‣ Buffer(s):

Acesta este un nou dialog.

  • Setați-l astfel:

../../../_images/vector_buffer_setup.png

The Buffer distance is in meters because our input dataset is in a Projected Coordinate System that uses meter as its basic measurement unit. This is why we needed to use projected data.

  • Salvați selecția în exercise_data/residential_development/ ca și roads_buffer_50m.shp.

  • Clic pe OK, pentru a crea tamponul.

  • When it asks you if it should “add the new layer to the TOC”, click Yes. (“TOC” stands for “Table of Contents”, by which it means the Layers list).
  • Închideți dialogul Buffer(s).

Acum, harta dvs. va arăta în felul următor:

../../../_images/roads_buffer_result.png

If your new layer is at the top of the Layers list, it will probably obscure much of your map, but this gives us all the areas in your region which are within 50m of a road.

However, you’ll notice that there are distinct areas within our buffer, which correspond to all the individual roads. To get rid of this problem, remove the layer and re-create the buffer using the settings shown here:

../../../_images/dissolve_buffer_setup.png
  • Rețineți că acum bifăm caseta Dissolve buffer results.

  • Save the output under the same name as before (click Yes when it asks your permission to overwrite the old one).
  • Clic OK, apoi închideți iarăși dialogul Buffer(s).

O dată ce ați adăugat stratul în Lista straturilor, el va arăta astfel:

../../../_images/dissolve_buffer_results.png

Acum, nu mai există subdiviziuni inutile.

7.2.9. basic Try Yourself Distanța față de școli

  • Utilizați aceeași abordare de mai sus, și creați un tampon pentru școlile dumneavoastră.

It needs to be 1 km in radius, and saved under the usual directory as schools_buffer_1km.shp.

Check your results

7.2.10. basic Follow Along: Suprapunerea zonelor

Now we have areas where the road is 50 meters away and there’s a school within 1 km (direct line, not by road). But obviously, we only want the areas where both of these criteria are satisfied. To do that, we’ll need to use the Intersect tool. Find it under Vector ‣ Geoprocessing Tools ‣ Intersect. Set it up like this:

../../../_images/school_roads_intersect.png

The two input layers are the two buffers; the save location is as usual; and the file name is road_school_buffers_intersect.shp. Once it’s set up like this, click OK and add the layer to the Layers list when prompted.

In the image below, the blue areas show us where both distance criteria are satisfied at once!

../../../_images/intersect_result.png

You may remove the two buffer layers and only keep the one that shows where they overlap, since that’s what we really wanted to know in the first place:

../../../_images/final_intersect_result.png

7.2.11. basic Follow Along: Selectarea Clădirilor

Now you’ve got the area that the buildings must overlap. Next, you want to select the buildings in that area.

  • Faceți clic pe elementul de meniu Vector ‣ Research Tools ‣ Select by location. Va apărea un dialog.

  • Setați-l astfel:

../../../_images/location_select_dialog.png
  • Clic pe OK, apoi pe Close.

  • You’ll probably find that not much seems to have changed. If so, move the school_roads_intersect layer to the bottom of the layers list, then zoom in:
../../../_images/select_zoom_result.png

The buildings highlighted in yellow are those which match our criteria and are selected, while the buildings in green are those which do not. We can now save the selected buildings as a new layer.

  • Clic dreapta pe stratul houses_34S din Lista straturilor.

  • Alegeți Salvare Selecție Ca....

  • Configurați dialogul care apare, în felul următor:

../../../_images/save_selection_as.png
  • Numele fișierului este well_located_houses.shp.

  • Clic pe OK

Now you have the selection as a separate layer and can remove the houses_34S layer.

7.2.12. moderate Try Yourself Filtrarea în Continuare a Clădirilor noastre

We now have a layer which shows us all the buildings within 1km of a school and within 50m of a road. We now need to reduce that selection to only show buildings which are within 500m of a restaurant.

Using the processes described above, create a new layer called houses_restaurants_500m which further filters your well_located_houses layer to show only those which are within 500m of a restaurant.

Check your results

7.2.13. basic Follow Along: Selectarea Clădirilor de Mărimea Potrivită

To see which buildings are the correct size (more than 100 square meters), we first need to calculate their size.

  • Deschideți tabela de atribute a stratului houses_restaurants_500m.

  • Intrați în modul de editare și deschideți calculatorul de câmpuri.

  • Setați-l astfel:

../../../_images/buildings_area_calculator.png
  • If you can’t find AREA in the list, try creating a new field as you did in the previous lesson of this module.
  • Clic pe OK

  • Scroll to the right of the attribute table; your AREA field now has areas in metres for all the buildings in your houses_restaurants_500m layer.
  • Faceți clic iarăși pe butonul de editare, apoi salvați modificările atunci când vi se solicită acest lucru.

  • Construiți o interogare, ca și mai devreme:

../../../_images/buildings_area_query.png
  • Click OK. Your map should now only show you those buildings which match our starting criteria and which are more than 100m squared in size.

7.2.14. basic Try Yourself

  • Save your solution as a new layer, using the approach you learned above for doing so. The file should be saved under the usual directory, with the name solution.shp.

7.2.15. In Conclusion

Using the GIS problem-solving approach together with QGIS vector analysis tools, you were able to solve a problem with multiple criteria quickly and easily.

7.2.16. What’s Next?

În lecția următoare vom vedea modul de calcul al traseului cel mai scurt dintre două puncte.