Як перетворити файл форми формату в CSV з вузлами та посиланнями?


12

Чи можна перетворити лінійний файл форми у файл CSV наступного формату:

Node_1, Node_2, attribute_1, ...., attribute_x
     1       2       "hello"        567845.334

Я переглянув GDAL / OGR2OGR та PostGIS, і не думаю, що перетворює дані у потрібний формат.

Я не проти написати сценарій для цього, якщо буду орієнтуватися в правильному напрямку.


У вашому прикладі Node_1, Node_2 - це фактичні координати вашої функції, правда? Я маю на увазі, з вашого прикладу я б фактично припускав, що ви хочете експортувати топологію з файлу форм; як у Node_1 - ваш FNODE, Node_2 - ваш TNODE, а геометрія зберігається лише один раз. Якщо так, то відповідь дуже інша, і вам знадобиться щось, крім OGR, щоб побудувати топологію.
Рагі Ясер Бурхум

@rburhum Я хочу реалізувати свою таблицю в класичному мережевому алгоритмі. Формат, як правило, від вузла 1 до вузла 2 вартістю X
dassouki

Відповіді:


8

Утилітні програми, включені до OGR (OGR2OGR), не зроблять це безпосередньо, але використовувати OGR це буде дуже просто для цього.

Вам потрібно буде написати сценарій / програму будь-якою з мов, підтримуваних OGR. Ви можете просто відкрити файл форми, прочитати кожну функцію та записати точки + дані у форматі CSV.

Зразок C ++ код на вікі на насправді показує майже кожен OGR API виклику для цього потрібно.


Дякуємо за швидку відповідь. Я переглядаю перший приклад python, який виводить із SHP-файл у CSV файл gdal.org/ogr/ogr%5Fapitut.html Приклад робиться для точкового шару, чи є якась істотна різниця для його перетворення для лінійного шару? Яким буде формат імені Вузла? Чи буде це число? Чи можу я пов’язати його з іншим точковим шаром, у якому є всі назви вузлів?
dassouki

У рядку функції будуть ogr.wkbLine замість ogr.wkbPoint. Ви можете повернути ім'я у вигляді рядка за допомогою функції.GetFieldAsString (col). Немає можливості обробляти "посилання" безпосередньо в OGR, тому вам доведеться відкрити іншу таблицю даних і самостійно здійснити пошук, або скопіювати імена спочатку в GIS.
Reed Copsey

Що має сенс; добре, я спробую це і постійно інформуватиму про те, як я розбираю. Я роблю все це, щоб я міг зробити аналіз мережі на лінійному рівні.
dassouki
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.