извлечение информации из файла с помощью GDAL
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 22 май 2020, 12:51
- Репутация: 0
- Откуда: Новосибирск
извлечение информации из файла с помощью GDAL
В прикрепленном коде я обращаюсь к файлу и могу извлечь часть его значений, в том числе и координаты углов изображения, но проблема в том что я не могу извлечь остальные значения, к тому же у каждого значения есть значение высоты, которое тоже надо получить, можете подсказать как это сделать
- Вложения
-
- mtw.py
- (3.41 КБ) 286 скачиваний
- Эдуард Казаков
- Гуру
- Сообщения: 546
- Зарегистрирован: 23 апр 2014, 17:11
- Репутация: 532
- Откуда: Planet Earth
- Контактная информация:
Re: извлечение информации из файла с помощью GDAL
Что за растр у вас? Как понять "у каждого значения есть значение высоты" - многоканальный растр, где в одном из каналов высота?
Действительно ли нужно считывать кусками:
line = gdalBand.ReadAsArray( 0, 0, 1781, 1994 )
?
Считывайте матрицу нужного канала целиком:
a = dataset.GetRasterBand(1).ReadAsArray()
И работайте с ней как с numpy array.
Действительно ли нужно считывать кусками:
line = gdalBand.ReadAsArray( 0, 0, 1781, 1994 )
?
Считывайте матрицу нужного канала целиком:
a = dataset.GetRasterBand(1).ReadAsArray()
И работайте с ней как с numpy array.
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 22 май 2020, 12:51
- Репутация: 0
- Откуда: Новосибирск
Re: извлечение информации из файла с помощью GDAL
вот ссылка на мой файл https://mega.nz/file/HaQhFYRT#r0Wrb5Sl9 ... u6gAVlTaS4Эдуард Казаков писал(а): ↑23 май 2020, 14:32Что за растр у вас?
У каждого значения есть высота, значит что для каждой пары координат X Y есть высота Z
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
-
- Гуру
- Сообщения: 1088
- Зарегистрирован: 30 окт 2014, 16:33
- Репутация: -248090259
- Откуда: г. Жуковский МО
Re: извлечение информации из файла с помощью GDAL
gamm, Вы (правда уважаемый) уверены картинка при переводе в другой формат оставит место для вычислений?
-
- Гуру
- Сообщения: 1088
- Зарегистрирован: 30 окт 2014, 16:33
- Репутация: -248090259
- Откуда: г. Жуковский МО
Re: извлечение информации из файла с помощью GDAL
что. Забыл.))
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
-
- Гуру
- Сообщения: 1088
- Зарегистрирован: 30 окт 2014, 16:33
- Репутация: -248090259
- Откуда: г. Жуковский МО
Re: извлечение информации из файла с помощью GDAL
Я, малек, про другое. Пачку "Беломора" нельзя превратить в в калькулируемый растр.
-
- Гуру
- Сообщения: 1088
- Зарегистрирован: 30 окт 2014, 16:33
- Репутация: -248090259
- Откуда: г. Жуковский МО
Re: извлечение информации из файла с помощью GDAL
Я опять забыл, ИМХО.
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 22 май 2020, 12:51
- Репутация: 0
- Откуда: Новосибирск
Re: извлечение информации из файла с помощью GDAL
Как это можно сделать с помощью gdal в питон? и как потом получить все координаты с высотами?gamm писал(а): ↑24 май 2020, 08:19Конвертируйте данные в GeoTIFF
- Эдуард Казаков
- Гуру
- Сообщения: 546
- Зарегистрирован: 23 апр 2014, 17:11
- Репутация: 532
- Откуда: Planet Earth
- Контактная информация:
Re: извлечение информации из файла с помощью GDAL
Когда вы считываете массив значений
a = dataset.GetRasterBand(1).ReadAsArray()
Это уже и есть матрица с высотами
a[0,0] - значение высоты в ячейке в первой строке, первом столбце матрицы.
a[100,50] - значение высоты в ячейке в 100 строке, 50 столбце матрицы.
Географические координаты напрямую для каждой ячейки не хранятся. Но их легко добыть.
Когда вы выполняете
gt = dataset.GetGeoTransform()
в переменной gt описано географическое положение верхнего левого угла матрицы, её разворот и размер каждой ячейки. Зная это, можно для конкретной интересующей ячейки вычислить географическую координату (вы знаете количество шагов от известного угла и размер шага).
Все координаты - в СК описанной в
dataset.GetProjection()
a = dataset.GetRasterBand(1).ReadAsArray()
Это уже и есть матрица с высотами
a[0,0] - значение высоты в ячейке в первой строке, первом столбце матрицы.
a[100,50] - значение высоты в ячейке в 100 строке, 50 столбце матрицы.
Географические координаты напрямую для каждой ячейки не хранятся. Но их легко добыть.
Когда вы выполняете
gt = dataset.GetGeoTransform()
в переменной gt описано географическое положение верхнего левого угла матрицы, её разворот и размер каждой ячейки. Зная это, можно для конкретной интересующей ячейки вычислить географическую координату (вы знаете количество шагов от известного угла и размер шага).
Все координаты - в СК описанной в
dataset.GetProjection()
-
- Гуру
- Сообщения: 1018
- Зарегистрирован: 01 авг 2012, 13:55
- Репутация: 241
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 22 май 2020, 12:51
- Репутация: 0
- Откуда: Новосибирск
Re: извлечение информации из файла с помощью GDAL
На скриншоте, то о чем вы говорите? это результат выполнения a = dataset.GetRasterBand(1).ReadAsArray()Эдуард Казаков писал(а): ↑24 май 2020, 14:39значение высоты в ячейке в первой строке, первом столбце матрицы
Последний раз редактировалось Niklin 30 май 2020, 10:54, всего редактировалось 1 раз.
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: извлечение информации из файла с помощью GDAL
запустите командную строку, и для начала gdalinfo, посмотрите, что у вас в этом чуде панорамовском лежит. А потом командной строкой конвертируйте в GeoTIFF. RTFM
Если очень хочется делать это из питона, запишите командный файл, и запустите изнутри. И работайте потом с нормальными данными. Панорамовское чудо неподвластно никаким стандартам западным, драйвер писали энтузиасты, написали, как смогли, в мире он никому не нужен, значит никто его допиливать и чистить не будет.
-
- Новоприбывший
- Сообщения: 8
- Зарегистрирован: 22 май 2020, 12:51
- Репутация: 0
- Откуда: Новосибирск
Re: извлечение информации из файла с помощью GDAL
А что вообще показывают эти значение -2147483648, потому что если строить изображение про тем высотам то все испортится из-за этих значений, можно ли их как-то убрать?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 34 гостя