Интерполяция точечных данных


This tutorial is now obsolete. A new and updated version is available at Interpolating Point Data (QGIS3)

Интерполяция - это широко используемая методика ГИС для создания непрерывной поверхности из дискретных точек. Многие реальные явления в мире являются непрерывным: высоты, почвы, температуры и т. д. Если нам нужно смоделировать эти поверхности для анализа, невозможно провести измерения по всей поверхности. Следовательно, полевые измерения проводятся в различных точках поверхности, а промежуточные значения рассчитываются в процессе под названием „интерполяция“. В QGIS, интерполяция осуществляется с помощью встроенного модуля Интерполяция.

Обзор задачи

Мы возьмем полевые измерения глубин для озера Арлингтон в Техасе и создадим карту рельефа дна и изолинии из этих измерений.

Вы научитесь также

  • создавать изолинии из точечных данных;

  • скрывать пустые значения из растрового слоя;

  • добавлять подписи к векторному слою.

Получение данных

Texas Water Development Board provides the shapefiles for completed lake surveys.

Загрузите shape-файлы исследования за декабрь 2007 года для озера Арлингтон.

For convenience, you can directly download the sample data used in this tutorial from link below.


Источник данных: [TWDB]


  1. Откройте QGIS. Перейдите к Layer ‣ Add Layer ‣ Add Vector Layer..

  1. Перейдите к загруженному файлу Shapefiles.zip и выберите его. Нажмите Open.

  1. In the Select layers to add… dialog, hold the Shift key and select Arlington_Soundings_2007_stpl83.shp and Boundary2004_550_stpl83.shp layers. Click OK.

  1. You will see the 2 layers loaded in QGIS. The Boundary2004_550_stpl83 layer represents the boundary of the lake. Un-check the box next to it in the Table of Contents.

  1. This will reveal the data from the second layer Arlington_Soundings_2007_stpl83. Though the data looks like lines, it is a series of points that are very close.

  1. Click the Zoom icon and select a small area on the screen. As you zoom closer, you will see the points. Each point represents a reading taken by a Depth Sounder at the location recorded by a DGPS equipment.

  1. Select the Identify tool and click on a point. You will see the Identify Results panel show up on the left with the attribute value of the point. In this case, the ELEVATION attribute contains the depth of the lake at the location. As our task is to create a depth profile and elevation contours, we will use this values as input for the interpolation.

  1. Make sure you have the Interpolation plugin enabled. See Использование модулей расширения for how to enable plugins. Once enabled, go to Raster ‣ Interpolation ‣ Interpolation.

  1. In the Interpolation dialog, select Arlington_Soundings_2007_stpl83 as the Vector layers in the Input panel. Select ELEVATION as the Interpolation attribute. Click Add. Change the Cellsize X and Cellsize Y values to 5. This value is the size of each pixel in the output grid. Since our source data is in a projected CRS with Feet-US as units, based on our selection, the grid size will be 5 feet. Click on the button next to Output file and name the output file as elevation_tin.tif. CLick OK.


Interpolation results can vary significantly based on the method and parameters you choose. QGIS interpolation supports Triagulated Irregular Network (TIN) and Inverse Distance Weighting (IDW) methods for interpolation. TIN method is commonly used for elevation data whereas IDW method is used for interpolating other types of data such as mineral concentrations, populations etc. See the Spatial Analysis module of the QGIS documentation for more details.

  1. You will see the new later elevation_tin loaded in QGIS. Right-click the layer and select Zoom to layer.

  1. Now you will see the full extent of the created surface. Interpolation does not give accurate results outside the collection area. Let’s clip the resulting surface with the lake boundary. Go to Raster ‣ Extraction ‣ Clipper.

  1. Name the Output file as elevation_tin_clipped.tif. Select the Cliiped mode as Mask layer. Select Boundary2004_550_stpl83 as the Mask layer`. Click OK.

  1. A new raster elevation_tin_clipped will be loaded in QGIS. We will now style this layer to show the difference in elevations. Note the min and max elevation values from the elevation_tin layer. Right-click the elevation_tin_clipped layer and select Properties.

  1. Go to the Style tab. Select Render type as Singleband pseudocolor. In the Generate new color map panel, select Spectral color ramp. As we want to create a depth-map as opposed to a height-map, check the Invert box. This will assign blues to deep areas and reds to shallow areas. Click Classify.

  1. Switch to the Tranparency tab. We want to remove the black-pixels from our output. Enter 0 as the Additional no data value. Click OK.

  1. Now you have a elevation relief map for the lake generated from the individual depth readings. Let’s generate contours now. Go to Raster ‣ Extraction ‣ Contours.

  1. In the Contour dialog, enter contours as the Output file for contour lines. We will generate contour lines at 5ft intervals, so enter 5.00 as the Interval between contour lines. Check the Attribute name box. Click OK.

  1. The contour lines will be loaded as contours layer once the processing is finished. Right-click the layer and select Properties.

  1. Go to the Labels tab. Check the Label this layer with box and select ELEV as the field. Select Curved as the Placement type and click OK.

  1. You will see that each contour line will be appropriately labeled with the elevation along the line.

comments powered by Disqus