Страница 1 из 1
					
				Как использовать параметр -f в утилите gdal_contour?
				Добавлено: 04 окт 2012, 14:21
				 nextstopsun
				По умолчанию на выходе утилита выдает шейпфайл.
Но в описании присутствует параметр -f, который вроде бы позволяет задать выходной формат.
Примеров с этим параметром, к сожалению, нигде не нашел.
Мне нужно результат писать в базу postgresql (postgis). 
Что нужно указывать в этом параметре, чтобы результат ушел сразу в базу, а не в шейп?
			 
			
					
				Re: Как использовать параметр -f в утилите gdal_contour?
				Добавлено: 04 окт 2012, 14:25
				 Voltron
				
			 
			
					
				Re: Как использовать параметр -f в утилите gdal_contour?
				Добавлено: 04 окт 2012, 14:38
				 nextstopsun
				Статья, конечно, полезная. Как и дока gdal собс-но.
Только вот при задании параметра -f как например в ogr2ogr
 gdal_contour -i 1 -f PostgreSQL PG:"host=localhost user=iampg password=iampgpass dbname=iamgis" iamrast.tif
Получаю такую ошибку
ERROR 1: Error browsing database for PostGIS Raster tables:
И что-то мне подсказывает, что это параметр для входного формата, а не выходного.
Но в доке сказано output:
-f format:
create output in a particular format, default is shapefiles.
			 
			
					
				Re: Как использовать параметр -f в утилите gdal_contour?
				Добавлено: 04 окт 2012, 14:46
				 Voltron
				nextstopsun писал(а):Получаю такую ошибку
ERROR 1: Error browsing database for PostGIS Raster tables:
Нескромный вопрос. А вы уверены, что gdal сейчас умеет писать растровые данные в в PostGIS? А то разработчики об этом похоже не знают 

. 
Пруф
nextstopsun писал(а):И что-то мне подсказывает, что это параметр для входного формата, а не выходного.
Неправильно подсказывает. В документации, конечно, бывают ошибки, но в данном случае все правильно
-f format:
create output in a particular format, default is shapefiles.
 
			
					
				Re: Как использовать параметр -f в утилите gdal_contour?
				Добавлено: 04 окт 2012, 15:04
				 nextstopsun
				Утилита gdal_contour на вход принимает растровые данные, а на выходе возвращает векторные.
Как я написал, на вход я ей подаю растровый файл iamrast.tif
На выходе получаю по умолчанию шейпфайл, а хочу получить таблицу в базе данных.
"Нескромный вопрос. А вы уверены, что gdal сейчас умеет писать растровые данные в в PostGIS? А то разработчики об этом похоже не знают ." 
Вопрос, конечно, к теме не относится (писать-то мне нужно векторные данные), но я в этом не уверен. Хотя может быть кто-то уже сделал патч...))
			 
			
					
				Re: Как использовать параметр -f в утилите gdal_contour?
				Добавлено: 04 окт 2012, 15:17
				 Voltron
				nextstopsun писал(а):Утилита gdal_contour на вход принимает растровые данные, а на выходе возвращает векторные.
Я в курсе 

 Но у вас не указан выходной файл
Код: Выделить всё
gdal_contour -i 1 -f PostgreSQL PG:"host=localhost user=iampg password=iampgpass dbname=iamgis" iamrast.tif -nln contour_out
P.S.: читать посты без форматирования неудобно
 
			
					
				Re: Как использовать параметр -f в утилите gdal_contour?
				Добавлено: 04 окт 2012, 15:32
				 nextstopsun
				Указываю -nln contour_out и все равно получаю ту же ошибку.
Код: Выделить всё
gdal_contour -i 1 -f PostgreSQL PG:"host=localhost user=iampg password=iampgpass dbname=iamgis" iamrast.tif -nln contour_out
ERROR 1: Error browsing database for PostGIS Raster tables:
В доке GDAL вроде бы этот параметр не обязателен.
-nln outlayername:
Provide a name for the output vector layer. Defaults to "contour".
 
			
					
				Re: Как использовать параметр -f в утилите gdal_contour?
				Добавлено: 04 окт 2012, 15:52
				 Александр Мурый
				А может таки стоит указывать вначале входной файл, а потом выходной? 
 
Код: Выделить всё
gdal_contour -f PostgreSQL iamrast.tif PG:host=localhost user=iampg password=iampgpass dbname=iamgis  -i 1
И заодно стоит, наверное, указывать имя таблицы (флаг "-a").
 
			
					
				Re: Как использовать параметр -f в утилите gdal_contour?
				Добавлено: 04 окт 2012, 16:31
				 nextstopsun
				И заодно стоит, наверное, указывать имя таблицы (флаг "-a").
Вот что указано в описании утилиты:
Код: Выделить всё
Usage: gdal_contour [-b <band>] [-a <attribute_name>] [-3d] [-inodata]
                    [-snodata n] [-f <formatname>] [-i <interval>]
                    [-off <offset>] [-fl <level> <level>...]
                    [-nln <outlayername>] [-q]
                    <src_filename> <dst_filename>
Как видно из описания, флаг "-a" - это флаг имени поля, в которое будет записано значение контура, а не имя таблицы.
А может таки стоит указывать вначале входной файл, а потом выходной? 
Опять же из описания утилиты параметр -nln задается до указания входного файла <src_filename>
Повторюсь: на выходе мне нужен не файл, а таблица базы данных.
Вобщем я пытался менять местами параметры - ошибка от этого остается прежней.
Прошу прощения - готов перефразировать вопрос: 
Приведите, пожалуйста, рабочий пример вызова утилиты gdal_contour с выходным форматом PostgreSQL
 
			
					
				Re: Как использовать параметр -f в утилите gdal_contour?
				Добавлено: 04 окт 2012, 16:36
				 nextstopsun
				Решил.
Код такой:
Код: Выделить всё
gdal_contour -f PostgreSQL -i 1 -nln cont iamrast.tif "PG:host=localhost user=iampg password=iampgpass dbname=iamgis"
 
			
					
				Re: Как использовать параметр -f в утилите gdal_contour?
				Добавлено: 04 окт 2012, 16:42
				 Максим Дубинин
				не хочешь добавить на 
страницу рецептов?
UPD: поправил ссылку