Страница 1 из 1
					
				извлечение информации из файла с помощью GDAL
				Добавлено: 22 май 2020, 12:55
				 Niklin
				В прикрепленном коде я обращаюсь к файлу и могу извлечь часть его значений, в том числе и координаты углов изображения, но проблема в том что я не могу извлечь остальные значения, к тому же у каждого значения есть значение высоты, которое тоже надо получить, можете подсказать как это сделать
			 
			
					
				Re: извлечение информации из файла с помощью GDAL
				Добавлено: 23 май 2020, 14:32
				 Эдуард Казаков
				Что за растр у вас? Как понять "у каждого значения есть значение высоты" - многоканальный растр, где в одном из каналов высота?
Действительно ли нужно считывать кусками:
line = gdalBand.ReadAsArray( 0, 0, 1781, 1994 )
?
Считывайте матрицу нужного канала целиком:
a = dataset.GetRasterBand(1).ReadAsArray()
И работайте с ней как с numpy array.
			 
			
					
				Re: извлечение информации из файла с помощью GDAL
				Добавлено: 24 май 2020, 08:01
				 Niklin
				Эдуард Казаков писал(а): ↑23 май 2020, 14:32
Что за растр у вас? 
 
вот ссылка на мой файл 
https://mega.nz/file/HaQhFYRT#r0Wrb5Sl9 ... u6gAVlTaS4
У каждого значения есть высота, значит что для каждой пары координат X Y есть высота Z
 
			 
			
					
				Re: извлечение информации из файла с помощью GDAL
				Добавлено: 24 май 2020, 08:19
				 gamm
				Niklin писал(а): ↑24 май 2020, 08:01
каждого значения есть высота
 
у вас вместо нормальных растровых данных панорамовская mtw, для нее любые чудеса возможны. Конвертируйте данные в GeoTIFF, и не мучайтесь, примеры выше для нормального формата написаны.
 
			 
			
					
				Re: извлечение информации из файла с помощью GDAL
				Добавлено: 24 май 2020, 10:38
				 tikhpetr
				gamm, Вы (правда уважаемый) уверены картинка при переводе в другой формат оставит место для вычислений?
			 
			
					
				Re: извлечение информации из файла с помощью GDAL
				Добавлено: 24 май 2020, 10:39
				 tikhpetr
				что. Забыл.))
			 
			
					
				Re: извлечение информации из файла с помощью GDAL
				Добавлено: 24 май 2020, 10:55
				 gamm
				tikhpetr писал(а): ↑24 май 2020, 10:38
картинка
 
я уверен, что с картинками нужно работать в фотошопе. GDAL предназначен для работы с данными. Возможно, у вас превратное представление о формате GeoTIFF, про него можно прочитать  
RTFM 
			 
			
					
				Re: извлечение информации из файла с помощью GDAL
				Добавлено: 24 май 2020, 11:09
				 tikhpetr
				Я, малек, про другое. Пачку "Беломора" нельзя превратить в в калькулируемый растр.
			 
			
					
				Re: извлечение информации из файла с помощью GDAL
				Добавлено: 24 май 2020, 11:11
				 tikhpetr
				Я опять забыл, ИМХО.
			 
			
					
				Re: извлечение информации из файла с помощью GDAL
				Добавлено: 24 май 2020, 14:00
				 Niklin
				gamm писал(а): ↑24 май 2020, 08:19
Конвертируйте данные в GeoTIFF
 
Как это можно сделать с помощью gdal в питон? и как потом получить все координаты с высотами?
 
			 
			
					
				Re: извлечение информации из файла с помощью GDAL
				Добавлено: 24 май 2020, 14:39
				 Эдуард Казаков
				Когда вы считываете массив значений
a = dataset.GetRasterBand(1).ReadAsArray()
Это уже и есть матрица с высотами
a[0,0] - значение высоты в ячейке в первой строке, первом столбце матрицы.
a[100,50] - значение высоты в ячейке в 100 строке, 50 столбце матрицы.
Географические координаты напрямую для каждой ячейки не хранятся. Но их легко добыть.
Когда вы выполняете
gt = dataset.GetGeoTransform()
в переменной gt описано географическое положение верхнего левого угла матрицы, её разворот и размер каждой ячейки. Зная это, можно для конкретной интересующей ячейки вычислить географическую координату (вы знаете количество шагов от известного угла и размер шага).
Все координаты - в СК описанной в
dataset.GetProjection()
			 
			
					
				Re: извлечение информации из файла с помощью GDAL
				Добавлено: 24 май 2020, 16:29
				 lam
				BBC
			 
			
					
				Re: извлечение информации из файла с помощью GDAL
				Добавлено: 24 май 2020, 20:11
				 Niklin
				Эдуард Казаков писал(а): ↑24 май 2020, 14:39
значение высоты в ячейке в первой строке, первом столбце матрицы
 
На скриншоте, то о чем вы говорите? это результат выполнения a = dataset.GetRasterBand(1).ReadAsArray()
 
			 
			
					
				Re: извлечение информации из файла с помощью GDAL
				Добавлено: 24 май 2020, 20:22
				 gamm
				Niklin писал(а): ↑24 май 2020, 14:00
Как это можно сделать с помощью gdal в питон?
 
запустите командную строку, и для начала gdalinfo, посмотрите, что у вас в этом чуде панорамовском лежит. А потом командной строкой конвертируйте в GeoTIFF. 
RTFM
Если очень хочется делать это из питона, запишите командный файл, и запустите изнутри. И работайте потом с нормальными данными. Панорамовское чудо неподвластно никаким стандартам западным, драйвер писали энтузиасты, написали, как смогли, в мире он никому не нужен, значит никто его допиливать и чистить не будет.
 
			 
			
					
				Re: извлечение информации из файла с помощью GDAL
				Добавлено: 26 май 2020, 09:38
				 Niklin
				А что вообще показывают эти значение -2147483648, потому что если строить изображение про тем высотам то все испортится из-за этих значений, можно ли их как-то убрать?