Страница 3 из 3
Re: Пакетный экспорт отдельных контуров в формате mif из векторного слоя в программе Q-gis
Добавлено: 09 апр 2026, 09:14
ustreb
Елена2026 писал(а): ↑09 апр 2026, 08:41
Спасибо за совет, но с АркГисом, боюсь, не получится, так как у нас в гос.организации нельзя устанавливать "крякнутые" программы и вообще всё проверяется ((( Ку-Гис, по идее, тоже нельзя использовать, но хоть это пока разрешили. Покупать лицензию точно не станут ради экспорта файлов... Вот проявляем изобретательность, как можем, чтобы имеющимися средствами ускорить работу.
Если есть свой ноутбук или ПК, то можно) вам шашечки или ехать?

Re: Пакетный экспорт отдельных контуров в формате mif из векторного слоя в программе Q-gis
Добавлено: 09 апр 2026, 13:32
AlexRomantsov
забавный вариант пришел в голову:
таблица атрибутов, калькулятор выражений, создаем виртуальное поле (txt), подставляем выражение типа:
'Version 2
Delimiter ","
CoordSys NonEarth Units "m" Bounds (-3274.9999, 2524.9995) (2224.99976, -5225.0005)
Columns 1
None Char(5)
DATA
Region 1' ||
'
' ||
num_points( $geometry ) ||
'
' ||
replace(
replace(
replace( geom_to_wkt( $geometry), 'Polygon ((', '')
,',','\n')
,'))','')
Выполняем, появляется поле с содержимым mif файла. Затем экспорт слоя например в csv, и поискать как текстовый файл разделить на множество
Значение атрибута:

- mif.JPG (13.64 КБ) 923 просмотра
Re: Пакетный экспорт отдельных контуров в формате mif из векторного слоя в программе Q-gis
Добавлено: 09 апр 2026, 15:20
Елена2026
Интересная идея, спасибо! Это почти mif-файл получается))) Однако при разбивке векторного слоя в экспортируемых файлах только по 3 точки от всего полигона почему-то отображается. Однако, если бы хоть координаты выгружались, проще было бы вручную мифки делать копипастом, чем экспортировать с ку-гиса через привычный "экспорт - сохранить выбранные объекты как..."
Re: Пакетный экспорт отдельных контуров в формате mif из векторного слоя в программе Q-gis
Добавлено: 09 апр 2026, 15:37
Елена2026
Сначала подумала, что дело в том, что малое количество символов задала, но нет - пробовала и миллион символов задавать. И что интересно: когда я ввожу выражение, сохраняю, то в столбце с новым атрибутом для каждого объекта появляется весь нужный текст со всеми координатами всех точек полигона. После того, как я делаю разбивку векторного слоя, экспортируются в csv уже урезанные координаты (3-4 точки от полигона). И в таблице атрибутов тоже исчезают все необходимые координаты, остаются урезанные. В чём же тут фокус?
Re: Пакетный экспорт отдельных контуров в формате mif из векторного слоя в программе Q-gis
Добавлено: 09 апр 2026, 16:21
gamm
Елена2026 писал(а): ↑08 апр 2026, 11:17
Спасибо за помощь, но всё равно не выполняется скрипт, выдает ошибку.
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "Untitled-0", line 82, in <module>
ValueError: too many values to unpack (expected 2)
Последняя попытка ...
Железный Мозг говорит, что строку
Код: Выделить всё
err_code, err_msg = QgsVectorFileWriter.writeAsVectorFormatV3(
нужно заменить на
Код: Выделить всё
err_code, _, _, err_msg = QgsVectorFileWriter.writeAsVectorFormatV3(
Re: Пакетный экспорт отдельных контуров в формате mif из векторного слоя в программе Q-gis
Добавлено: 10 апр 2026, 05:04
AlexRomantsov
Елена2026 писал(а): ↑09 апр 2026, 15:37
И в таблице атрибутов тоже исчезают все необходимые координаты, остаются урезанные. В чём же тут фокус?
Если Вы сделали физическое поле для расчета (не виртуальное), его возможная длина зависит от формата слоя, и при сохранении текст обрежет.
Например в shp (dbf) максимум - 254 символа.
Либо надо хранить слой в современных форматах или базах данных (таких как GeoPackage), либо это поле делать виртуальным, вычисляемым (не сохраняемым).
Попробовал, виртуальное поле сохранилось в csv не обрезанным, в т.ч. через Разбить векторный слой
Re: Пакетный экспорт отдельных контуров в формате mif из векторного слоя в программе Q-gis
Добавлено: 10 апр 2026, 05:08
AlexRomantsov
Да, и в примере моя шапка (Version 2 Delimiter "," ...) - с потолка, заменить на свои
Re: Пакетный экспорт отдельных контуров в формате mif из векторного слоя в программе Q-gis
Добавлено: 10 апр 2026, 10:28
Елена2026
AlexRomantsov писал(а): ↑10 апр 2026, 05:04
Елена2026 писал(а): ↑09 апр 2026, 15:37
И в таблице атрибутов тоже исчезают все необходимые координаты, остаются урезанные. В чём же тут фокус?
Если Вы сделали физическое поле для расчета (не виртуальное), его возможная длина зависит от формата слоя, и при сохранении текст обрежет.
Например в shp (dbf) максимум - 254 символа.
Либо надо хранить слой в современных форматах или базах данных (таких как GeoPackage), либо это поле делать виртуальным, вычисляемым (не сохраняемым).
Попробовал, виртуальное поле сохранилось в csv не обрезанным, в т.ч. через Разбить векторный слой
Спасибо!! Удалось экспортировать весь слой в csv, открыла с помощью блокнота - начинка как раз как у mif. Надо ещё с шапкой поэкспертиментировать и проверить, примет ли их Технокад. Многоконтурные земельные участки и с дырками вырезанными тоже надо ещё попробовать сделать) Благодарю за помощь!!
Re: Пакетный экспорт отдельных контуров в формате mif из векторного слоя в программе Q-gis
Добавлено: 10 апр 2026, 10:57
Елена2026
[/quote]
Последняя попытка ...
Железный Мозг говорит, что строку
Код: Выделить всё
err_code, err_msg = QgsVectorFileWriter.writeAsVectorFormatV3(
нужно заменить на
Код: Выделить всё
err_code, _, _, err_msg = QgsVectorFileWriter.writeAsVectorFormatV3(
[/quote]
Благодарю! В этот раз Питон ошибку не выдал, сделал экспорт в назначенную папку. Но! Файлы Кугис выгрузил в форматах .tab, .map, .dat, .id, а mif просто включил в название файла (например, 62_12_0010101_4.mif.map). Не любит Кугис формат mif

Re: Пакетный экспорт отдельных контуров в формате mif из векторного слоя в программе Q-gis
Добавлено: 10 апр 2026, 10:58
Елена2026
Последняя попытка ...
Железный Мозг говорит, что строку
Код: Выделить всё
err_code, err_msg = QgsVectorFileWriter.writeAsVectorFormatV3(
нужно заменить на
Код: Выделить всё
err_code, _, _, err_msg = QgsVectorFileWriter.writeAsVectorFormatV3(
Благодарю! В этот раз Питон ошибку не выдал, сделал экспорт в назначенную папку. Но! Файлы Кугис выгрузил в форматах .tab, .map, .dat, .id, а mif просто включил в название файла (например, 62_12_0010101_4.mif.map). Не любит Кугис формат mif

Re: Пакетный экспорт отдельных контуров в формате mif из векторного слоя в программе Q-gis
Добавлено: 10 апр 2026, 16:15
gamm
Мда ... странно и загадочно.
Железный Мозг говорит, что нужно указать другой драйвер
driverName = "MapInfo MIF" вместо driverName = "MapInfo file"
Re: Пакетный экспорт отдельных контуров в формате mif из векторного слоя в программе Q-gis
Добавлено: 13 апр 2026, 08:05
Игорь Белов
В документации GDAL драйвер называется "MapInfo File"
https://gdal.org/en/stable/drivers/vector/mitab.html
Выбор TAB или MIF/MID решает выбор опции -dsco (Dataset Creation Option) "FORMAT=TAB" либо "FORMAT=MIF"
https://gdal.org/en/stable/drivers/vector/mitab.html#dataset-creation-options
IMHO в
код надо добавить строку:
Re: Пакетный экспорт отдельных контуров в формате mif из векторного слоя в программе Q-gis
Добавлено: 13 апр 2026, 12:58
Елена2026
Благодарю за помощь! А не подскажете, куда эту строку вставить? Я попробовала вставить её после других options
options = QgsVectorFileWriter.SaveVectorOptions()
options.driverName = "MapInfo File"
options.fileEncoding = "UTF-8"
options.layerName = base_name
options.datasourceOptions = ["FORMAT=MIF"]
Отступы сохранила, но при выполнении сценария сохранение не происходит. Консоль показывает список ERROR с моими полигонами и внизу "Done. Exported: 0, skipped/errors: 5"
Квадратные скобки не надо убирать? Я попробовала и убирать

, но тоже ошибка вылезла.