Бештар

Ҳал кардани TIN бо истифодаи ҳатмии python / ogr

Ҳал кардани TIN бо истифодаи ҳатмии python / ogr


Ман як модели TIN дорам, ки дар он ман баъзе секунҷаҳоро хориҷ мекунам (ба расми 1). Аксари секунҷаҳо ба як канор, қисме ба як қулла мерасанд. Ҳоло ман мехоҳам як формаи полигон созам, ки дорои секунҷаҳои боқимондаи дар як бисёркунҷа гудохташуда бошад (ҳалқаҳои сершумор, ба расми 2 нигаред).

Расми 1. - РМА бо баъзе секунҷаҳои хориҷшуда. Вертаҳо аз секунҷаҳои ламс ҳастанд маҳз якхела, бидуни бисёркунҷаҳо.

Расми 2 - Дар хотир доред, ки ин танҳо аст як бисёркунҷа бо сатри ягона дар ҷадвали атрибутӣ

Суратҳо бо истифода аз асбоби QGIS "Вектор -> Асбобҳои геопротсессӣ -> Ҳал кардан" сохта шудаанд. Оё ин бо пайвастани ogr python имконпазир аст? Ин аст он чизе ки ман то ҳол озмудам:

аз osgeo воридоти ogr tri = ogr.Geometry (ogr.wkbLinearRing) tri.AddPoint (0,0) tri.AddPoint (0,1) tri.AddPoint (1,1) tri.CloseRings () poly = ogr.Geometry (ogr .wkbPolygon) poly.AddGeometry (tri) tri2 = ogr.Geometry (ogr.wkbLinearRing) tri2.AddPoint (1,1) tri2.AddPoint (0,1) tri2.AddPoint (0,4) poly2 = ogr.Geometry (ogr) .wkbPolygon) poly2.AddGeometry (tri2) poly.Union (poly2) # ҳеҷеро бармегардонад poly.Intersect (poly2) # полиси бардурӯғро месупорад.

Ман чизе монандро гум мекунамpoly.Dissolve (), шояд дар як истифода бурда мешавадogr.wkbGeometryCollection?


Тавре ки OP пурсид, ман инро дар ҷавоб гузоштам. Масъала бо усули истифодашуда набуд, зеро ogr.Geometry.Union () мувофиқ аст, аммо бо бисёркунҷаи дуюм, ки баста нашудааст.
Он метавонад бо:
tri2.CloseRings ()
ё бо такрори нуқтаи аввал:
tri2.AddPoint (1,1)
Агар хусусиятҳои зиёд барои пароканда шудан вуҷуд дошта бошанд (ба монанди тамоми қабат), онро бо он анҷом додан мумкин астUnionCascaded ()ки гӯё дар муқоиса бо иттиҳоди такрорӣ сарфаи зиёди вақтро таъмин мекунад.


Видеоро тамошо кунед: Господь действительно существует и помогает. Дар ҳақиқат Худованд кумак мекардаст