Все довольно просто. Любое геоинформационное ПО умеет делать практически всё. ArcGIS надо реже обрабатывать напильником, но расширяемость у него отличная. Самый простой способ - с помощью библиотеки
arcpy для Python 2.7. Я дал ссылку на классы Geometry, которые можно использовать в собственных скриптах. Например, нужно создать из вашего линейного фичекласса новый фичекласс, который превратит ваши полилинии в их "векторы".
Открываем в ArcCatalog или ArcMap консоль (окно) Python. Для начала определяем, какой нам фичекласс нужен. Я просто возьму из ArcTutor.
Код: Выделить всё
inputFC = r'C:\arcgis\ArcTutor\Editing\Zion.gdb\Roads'
Чтобы не заморачиваться, возьмем самый простой инструмент,
Create Feature Class, с помощью него создадим из консоли новый класс объектов. Пойдем прям по коду из справки:
Код: Выделить всё
out_path = r'C:\arcgis\ArcTutor\Editing\Zion.gdb'
out_name = 'RoadsV'
geometry_type = 'POLYLINE'
template = inputFC
has_m = 'DISABLED'
has_z = 'DISABLED'
spatial_reference = arcpy.Describe(inputFC).spatialReference
По ходу пьесы мы еще зацепили отличный инструмент Describe, который позволяет расспросить класс объектов о всех его свойствах.
Код: Выделить всё
outputFC = arcpy.CreateFeatureclass_management(out_path, out_name, geometry_type, template, has_m, has_z, spatial_reference)
Записали в переменную наш готовый фичекласс. Дальше начинаем работать с
курсорами:
Код: Выделить всё
sCursor = arcpy.da.SearchCursor(inputFC,["SHAPE@","*"])
iCursor = arcpy.da.InsertCursor(outputFC,["SHAPE@","*"])
Открыли курсор на чтение в исходном классе объектов и курсор на запись в созданном. Берем в цикле записи из входного класса, немножко их обрабатываем и кладем в выходной:
Код: Выделить всё
for row in sCursor:
polyline = arcpy.Polyline(arcpy.Array([row[0].firstPoint,row[0].lastPoint]))
newRow = (polyline,)+row[1:]
iCursor.insertRow(newRow)
Что мы сделали: взяли геометрию "SHAPE@", она же первая (нулевая) запись в кортеже row, спросили у нее первую и последнюю точки, сделали из них новую линию; к этой линии добавили остальные атрибуты, записали новую строку.
Потом обязательно надо прибраться:
Наслаждаемся нашими "векторами"
