Как конвертировать растр в точку в QGIS


12

Я хотел преобразовать растр в точечный вектор в QGIS. Является ли это возможным? У QGIS есть возможность конвертировать его в полигон, но я не нашел никакого инструмента для конвертации в точку. Может кто-нибудь мне помочь?


Сколько очков вы хотите получить? Один для каждой растровой ячейки, или на регулярной сетке, или только локальные максимальные / минимальные значения?
AndreJ

по одному на каждую растровую ячейку. Я использовал инструмент ArcGIS (Ratser to point), но я хотел рассчитать, используя QGIS
suyogpatwardhan

Ответы:


10

Сохранение в виде сетки ASCII и импорт в виде текста с разделителями может сделать то, что вы хотите.

Смотрите этот урок:

http://www.slideshare.net/shencoop/qgis-raster-to-point

Если вам нужен файл с меньшей плотностью, попробуйте этот урок:

http://www.gistutor.com/quantum-gis/19/54-how-to-sample-raster-datasets-using-points-in-quantum-gis-qgis.html


Я пробовал это, но это очень много времени для большого набора данных.
suyogpatwardhan

1
Вы можете уменьшить количество баллов с помощью второго урока.
AndreJ

1
Вторая ссылка, видимо, больше не доступна. Не могли бы вы загрузить новый? Большое спасибо @suyogpatwardhan
Janita

1
@AndreJ Спасибо за ссылку
Janita

10

Если вы используете версию QGIS, которая объединяет алгоритмы SAGA, вы можете использовать этот Grid values to pointsинструмент. Вы найдете его на панели инструментов обработки в SAGA/ Shapes-Grid(по крайней мере для QGIS 2.4.0).


Это должно быть отмечено как ответ!
Шон

5

GRASS-GIS-tool r.to.vect сделает это. Выберите точку в качестве выхода. Для этого вам нужно установить GRASS-GIS.


1
Внутри QGIS вы также найдете его в панели инструментов обработки. Обязательно выберите тип функции point.
AndreJ

3

QGIS 3.4

Там есть инструмент Растр пикселей на точки , недавно добавленный в QGIS 3.4 (октябрь/2018).

введите описание изображения здесь Растровые пиксели в точки

Этот инструмент работает с удивительной скоростью. Когда я преобразовал 11-мегабайтный растр с одной полосой в точечный слой (который в итоге получил 6 миллионов точек), время обработки было:

Растровые пиксели в точки ............................................. | 10,35 сек

Обработка - растровые значения SAGA в точках .......... | 380 сек.

GUI SAGA - значения сетки в баллах ........................... | 130 сек

(На данный момент я не смог запустить) GRASS r.to.vect ...... | не рассчитано

(Это может быть неправильное сравнение, потому что инструменты SAGA возвращают координаты x и y вместе со значениями растра).


1
REM English
    REM Tested in QGIS console version 2.18 (OSGEO4W Shell)
    REM Tested in Windows Operating System
    REM Folder where the image is (replace with your file directory): C: / Users / Administrator / Documents / ruts /
    REM Name of the dsm file: dtm_phase1_vm_15m_inside.tif
    REM Name of the output file csv: dtm_phase1_vm_15m_inside.csv
    REM Name of output file shp: dtm_phase1_vm_15m_inside.shp
REM eye that some directions (path) has separator / (bar) and other \ (backslash), respect them so you do not have problems
REM spanish
    REM Probado en consola de QGIS version 2.18 (OSGEO4W Shell)
    REM Probado en Sistema Operativo Windows
    REM Carpeta donde estan la imagen (sustituya por su directorio de archivos): C:/Users/Administrator/Documents/surcos/
    REM Nombre del archivo dsm: dtm_phase1_vm_15m_inside.tif
    REM Nombre del archivo de salida csv: dtm_phase1_vm_15m_inside.csv
    REM Nombre del archivo de salida shp: dtm_phase1_vm_15m_inside.shp
    REM ojo que algunas direcciones (path) tiene separador / (slash) y otras \ (backslash), respetelos para que no tenga problemas

REM converts the dsm image (surface model) from TIF format to CSV format
REM convierte la imagen dsm (modelo de superficie) de formato TIF a formato CSV

gdal2xyz.bat -band 1 -csv C: \ Users \ Администратор \ Documents \ surcos \ dtm_phase1_vm_15m_inside.tif C: /Users/Administrator/Documents/surcos/dtm_phase1_vm_15m_inside.csv

REM removes the null values from the csv file (Z = 0)
REM elimina los valores nulos del archivo csv (Z = 0)

sed -i '/, 0 \ s * $ / d' C: /Users/Administrator/Documents/surcos/dtm_phase1_vm_15m_inside.csv

REM adds header to file with column names x, y, z
REM agrega encabezado al archivo con nombres de columna x,y,z

sed -i '1 i \ x, y, z' C: /Users/Administrator/Documents/surcos/dtm_phase1_vm_15m_inside.csv

REM converts the csv file to shp format
REM covierte el archivo csv a formato shp

ogr2ogr -s_srs EPSG: 32749 -t_srs EPSG: 32749 -dialect SQLite -sql "ВЫБЕРИТЕ CAST (z AS с плавающей точкой) как z, MakePoint (CAST (x AS с плавающей точкой)), CAST (y AS с плавающей точкой)) FROM dtm_phase1_vm_15m_inside" C: / Users /Administrator/Documents/surcos/dtm_phase1_vm_15m_inside.shp C: /Users/Administrator/Documents/surcos/dtm_phase1_vm_15m_inside.csv


1

Растр -> Преобразование -> Полигонизация (Растр в вектор) - это создаст шейп-файл полигона с квадратами, представляющими каждый пиксель из вашего растра. - Добавьте поля x и y в таблицу атрибутов. - Рассчитать геометрию для х и у центроидов. - Экспортируйте свою таблицу атрибутов в Excel. - Сохранить как CSV. - Импортируйте CSV в ArcGIS и отобразите данные x и y, чтобы создать новый шейп-файл точек со значениями пикселей.


-2

Растр -> Преобразование -> Полигонизация (Растр в вектор)

http://hub.qgis.org/wiki/17/Raster_to_vector_conversion

Сделаю это.


Но Polygonize конвертирует только растр в полигон. его не конвертировать в точку. я хотел преобразовать матрицу высот в точку, чтобы получить значение каждого пикселя.
suyogpatwardhan
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.