Фиона: имя ‘rec’ не определено

#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))