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

Re: Работа с векторными данными при помощи OGR и Python

Добавлено: 22 апр 2013, 16:53
ilmir35
После ввода import osgeo.ogr as ogr
Выдает сообщение:
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ImportError: No module named osgeo.ogr

А если ввести сразу ogrData = ogr.Open( "C:\Users\Ильмир\shape\boundary-polygon.shp", False )
То это пишет:
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "C:\PROGRA~1\FWTOOL~1.7\pymod\ogr.py", line 124, in Open
raise OGRError, 'Unable to open: ' + filename
ogr.OGRError: Unable to open: C:\Users\Ильмир\shapoundary-polygon.shp

Re: Работа с векторными данными при помощи OGR и Python

Добавлено: 22 апр 2013, 17:11
ilmir35
Это я делал через FWTools Shell. Потом попробовал через OSGeo4W. После ввода
import osgeo.ogr as ogr
ogrData = ogr.Open( "C:\Users\Ильмир\shape\boundary-polygon.shp")
if ogrData is None:
print "ERROR: open failed"
Вывел ERROR: open failed

Re: Работа с векторными данными при помощи OGR и Python

Добавлено: 24 апр 2013, 15:03
ilmir35
А могут быть проблемы с установкой, может что-то несовместимо? И ещё нужно ли изменять переменные среды?

Re: Работа с векторными данными при помощи OGR и Python

Добавлено: 24 апр 2013, 15:13
Александр Мурый
ilmir35 писал(а):А могут быть проблемы с установкой, может что-то несовместимо? И ещё нужно ли изменять переменные среды?
Может быть всё, что угодно (как известно :)). Как я понял, у вас одновременно установлены и FWTools, и OSGeo4W?

Re: Работа с векторными данными при помощи OGR и Python

Добавлено: 24 апр 2013, 15:52
ilmir35
Да, сначала я установил FWTools и пробовал работать с ним,но не получилось. Потом я наткнулся на эту статью и всё сделал как там.

Re: Работа с векторными данными при помощи OGR и Python

Добавлено: 24 апр 2013, 15:54
ilmir35
А что насчёт
ilmir35 писал(а):И ещё нужно ли изменять переменные среды?

Re: Работа с векторными данными при помощи OGR и Python

Добавлено: 24 апр 2013, 16:01
Александр Мурый
ilmir35 писал(а):А что насчёт
ilmir35 писал(а):И ещё нужно ли изменять переменные среды?
Смотря для каких целей… Давайте пойдём по 2-му кругу: попытайтесь повторить что-то из статьи, используя только OSGeo4W. Что получится?

Re: Работа с векторными данными при помощи OGR и Python

Добавлено: 24 апр 2013, 16:07
ilmir35
Мне удалить все что установлено?

Re: Работа с векторными данными при помощи OGR и Python

Добавлено: 24 апр 2013, 16:12
ilmir35
Если не удалять, то результат вначале этой страницы.

Re: Работа с векторными данными при помощи OGR и Python

Добавлено: 24 апр 2013, 16:41
Александр Мурый
ilmir35 писал(а):Мне удалить все что установлено?
Можно, конечно, удалить FWTools и OSGeo4W, затем заново установить OSGeo4W и попробовать ещё раз проделать действия из статьи. Но будет ли в этом смысл, не понятно.

Re: Работа с векторными данными при помощи OGR и Python

Добавлено: 24 апр 2013, 17:01
ilmir35
ок, спасибо вам)

Re: Работа с векторными данными при помощи OGR и Python

Добавлено: 21 май 2013, 19:39
ilmir35
Всем привет. У меня небольшой вопрос. В статье показалось как вывести список полей объекта:
feat = layer.GetNextFeature()
featDef = layer.GetLayerDefn() # схема (таблица атрибутов) слоя
while feat is not None:
for i in range( featDef.GetFieldCount() ): # проходим по всем полям
fieldDef = featDef.GetFieldDefn( i ) # получаем i-тое поле
print "Field name", fieldDef.GetNameRef() # и выводим информацию
print "Field type", fieldDef.GetType()
print "Field value", feat.GetFieldAsString(i)
feat = layer.GetNextFeature() # переходим к следующему объекту

Я хотел вместо вывода на print записать эти поля в файл. Файл открыл так:
file = open('c:/data/1.txt', 'w')
Я изменил пример: file.write( "Field name", fieldDef.GetNameRef())
Но не записывает, не могли бы помочь мне?

Re: Работа с векторными данными при помощи OGR и Python

Добавлено: 21 май 2013, 22:15
SS_Rebelious
ilmir35 писал(а):Я хотел вместо вывода на print записать эти поля в файл. Файл открыл так:
file = open('c:/data/1.txt', 'w')
Я изменил пример: file.write( "Field name", fieldDef.GetNameRef())
Но не записывает, не могли бы помочь мне?
Во-первых, когда задаёте подобные вопросы, хотелось бы подробностей: например, выдаёт ли скрипт какую-либо ошибку, а также, уверены ли вы, что скрипт исправно работает до команды write?

Во-вторых, хорошим тоном считается прочтение мануалов перед тем, как задать вопрос. Гляньте вот сюда: буржуйским по белому написано, что команда write() принимает аргумент типа string, а вы что ему суёте? Что-то на меня напала вредность и корректный код приводить не буду - сами подумайте, что надо сделать. Вам это даже полезнее будет.