Split для Shp-файла на отдельные features по полю Id

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
nickleb
Гуру
Сообщения: 969
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Split для Shp-файла на отдельные features по полю Id

Сообщение nickleb » 26 окт 2014, 20:04

Кто-нибудь в QGis через Python-интерфейс делал разбивку множества shp-файлов по id-полю на отдельные shp-файлы?

nickleb
Гуру
Сообщения: 969
Зарегистрирован: 22 май 2010, 20:20
Репутация: 154

Re: Split для Shp-файла на отдельные features по полю Id

Сообщение nickleb » 27 окт 2014, 13:55

вот как можно:
(за основу взял ссылку:
http://gis.stackexchange.com/questions/ ... -in-python

Код: Выделить всё

from shapely.geometry import mapping, shape
import fiona
# Чтение исходного shp-файла 
with fiona.collection('test_uk.shp', 'r') as input_file:
    source_driver = input_file.driver
    source_crs = input_file.crs
    schema_out = input_file.schema.copy()
    # Цикл по feature'-сам
    for elem in input_file:
        # имя выходного файла
        output_file='_Divide_Shps/'+elem['id']+'.shp'
        # запись в выходной файл
        #... c crs=source_crs - программа вылетает...
        #with fiona.collection(output_file, 'w', driver=source_driver, crs=source_crs, schema=schema_out) as output:
        #... без crs=source_crs - программа отрабатывает, но prj-файлы не генериоуются...
        with fiona.collection(output_file, 'w', driver=source_driver, schema=schema_out) as output:
            output.write({'properties': elem['properties'],'geometry': mapping(shape(elem['geometry']))})

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей