Страница 1 из 1

MatLab, geotif и shp

Добавлено: 21 янв 2021, 11:34
lunfei
Здравствуйте, коллег!

Есть задача: считать одноканальный geotif (канал Ландсат-8) в Matlab, произвести вычисления и сохранить результаты в shp, привязанный аналогично исходному файлу. Уже вторую неделю читаю форумы-мануалы, но пока не могу осилить эту вроде бы на первый взгляд простую задачу.

Возможно, кто-то сможет подсказать конкретное решение или дописать код, может даже и возмездно)))

Вот скрипт:

rgb = imread('c:/test.tif'); #чтение одноканального geotif файла в оттенках серого

#Блок вычисления линеаментов

rgb_edge=edge(rgb,'canny')
[H,T,R] = hough(rgb_edge);
P = houghpeaks(H,100);
lines = houghlines(rgb_edge,T,R,P,'FillGap',10,'MinLength',8)

# Блок визуализации
imagesc(rgb);
axis tight;
hold on
for k = 1:length(lines)
xy = [lines(k).point1; lines(k).point2];
plot(xy(:,1),xy(:,2),'LineWidth',2,'Color','red');
end;
hold off;

Линеаменты кстати достаточно хорошо строит. Нет уверенности, что идеально, с картой космодешифрирования от ВСЕГЕИ коррелирует лишь в некоторой степени, но все, какие брал на контроль до единого - заверялись перепадом высот на DEM ALOS PALSAR.

И почему Matlab, а не Питон - Matlab считает математику на порядок быстрее.

Re: MatLab, geotif и shp

Добавлено: 21 янв 2021, 11:40
trir
shp must die, пиши в .csv

Re: MatLab, geotif и shp

Добавлено: 21 янв 2021, 13:17
gamm
вместо shp пишите в MIF/MID, он текстовый. Это просто ваши точки, впереди заголовок (можно руками вставить), перед каждой линией - одна строка
PLINE 123
где 123 - число точек
Для заголовка нарисуйте в QGIS линию поверх вашего GeoTIFF, и сохраните в MIF/MID. Номера линий пишите в MID