Split для Shp-файла на отдельные features по полю Id
Добавлено: 26 окт 2014, 20:04
Кто-нибудь в QGis через Python-интерфейс делал разбивку множества shp-файлов по id-полю на отдельные shp-файлы?
Геоинформационные системы (ГИС) и Дистанционное зондирование Земли
https://gis-lab.info/forum/
Код: Выделить всё
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']))})