#python #geospatial #fiona
#python #геопространственный #фиона
Вопрос:
Я изучаю Python для работы с ГИС, и я хотел бы дублировать шейп-файл с помощью Fiona.
Я пытаюсь воспроизвести официальный пример.
import fiona
input_folder = '../test-input/'
input_data_name = 'input.shp'
input_data = input_folder input_data_name
output_folder = '../test-output/'
output_data_name = 'output.shp'
output_data = output_folder output_data_name
with fiona.open(input_data, 'r') as src:
source_driver = src.driver
source_crs = src.crs
source_schema = src.schema
with fiona.open(
output_data,
'w',
driver=source_driver,
crs=source_crs,
schema=source_schema
) as dup:
dup.write(rec)
dup.close()
Когда я использую этот код, я вижу эту ошибку:
Ошибка имени: имя ‘rec’ не определено
Это тот же код из примера, за исключением имени файла и папки с данными.
Комментарии:
1. где это
rec
определено? (в очередиdup.write(rec)
)2.
dup.write(rec)
: rec никогда не определяется.
Ответ №1:
Вам не хватает начала примеров документации:
with fiona.open('docs/data/test_uk.shp') as c:
rec = next(c)
Комментарии:
1. Он запущен, но я вижу это предупреждение:
FionaDeprecationWarning: Collection.__next__() is buggy and will be removed in Fiona 2.0. Switch to
next (iter (collection)). rec = next(src)
2. Затем попробуйте сделать так, как указано в предупреждении:
rec = next(iter(c))