Daha çox

QGIS-də Delaunay üçbucağı necə istifadə olunur?


Nyu-Cersidəki bir sayt üçün bir Thiessen poliqonu yaratmalıyam və hazırda əlimdə olanı ərazidə götürdüyümüz nümunələrin konsentrasiyasıdır. Başqa nəyə ehtiyacım var və istədiyim nəticəni əldə etmək üçün onu QGIS-ə necə daxil edə bilərəm? Ümumi qazıntıları konsentrasiyalara əsasən poliqonlara bölmək hansıdır? Hər hansı bir məlumat bir kömək olacaq.


QGIS-də məlumatlarınızı idxal etmək üçün hazırlamağın ən asan yolu adətən oxşar bir CSV yaratmaqdır

x, y, konsentrasiya 1,2,12,5 1,3,20.7 2,2,30.1

CSV-ni yüklədikdən sonra, yaranan təbəqəni triangulyasiya, interpolasiya və ya istədiyiniz hər hansı digər analiz üçün giriş kimi istifadə edə bilərsiniz.


CGAL: CGAL & # 39s nümunəsində Delaunay triangülasyonu vs triangulation

İşimdə odak hissəcik üçün Voronoi qonşularının ilk qabığını almalıyam. Bunun üçün Voronoi tessellation-un ikili qrafiki olan Delaunay üçbucağından istifadə edirəm. İstifadə etdiyim CGAL versiyası 4.7-dir. Delaunay üçbucağı yaratmaq üçün həmişə şablon olaraq CGAL manual_4.7-də əsas kodu istifadə etdim. Problemim həmin nümunədəki başlıqlar və yazı tipləri ilə əlaqədardır, çünki bu yaxınlarda mövcud olan son versiyası olan CGAL 4.14-dən fərqli olduqlarını kəşf etdim. CGAL 4.7-də:

sonra izahatları fərqli olub olmadığını yoxlamaq üçün təlimatı iki dəfə yoxladım. Anladığım qədəri ilə Software Design 4.14 və Software Design 4.7 eyni və ikinci nümunə ilə uyğun gəlir. Boş dairə xassəsi ilə üçbucağa ehtiyac duyduğumdan və yalnız Delaunay üçbucağındakı qonşu təpələrin indekslərini götürməyim lazım olduğundan, birincisi də eyni nəticələrə gətirib çıxarır? Onları bəzi məqamlara görə yoxlaya bilərəm, amma şübhə edirəm ki, hər bal dəsti üçün eyni nəticələr verərlər?


Delaunay üçbucağını yalnız şaquli (Z ölçülü) yaratmaq mümkündürmü?

Raster məlumatlarından 3d model yaradan QGIS-də plagin üzərində işləyirəm. Bu vəziyyətdə, yalnız şaquli müstəvidə üçbucaq yaratmalıyam (şaquli üzləri qonşu nöqtələrlə birləşdirməməliyəm).

Bu, indiki effektlə mənim kodum və nümunəmdir.

Delaunay funksiyasından sonra nöqtələrdən və üzlərdən stl faylı yaradıram. Aşağıda ehtiyacım var, ancaq alqoritm yalnız bir düz xətt əldə etdikdə düzgün işləyir. Bütün nöqtələr üçün ehtiyacım var.

Fikrinizi sınadım, amma alınmadı.

Bu, bütün pikselləri təkrarladığım və pikselin dəyəri olduqda, alqoritmim siyahıya əlavə etdiyim təkrarlama funksiyası kodumdur. Bundan sonra Delaunay üçbucağında bu siyahını istifadə edirəm.

Bu, 3d STL MODELinə çevirmək istədiyim raster nümunəsidir. 1 piksel X, Y və yüksəklik dəyərinə malikdir (kodda bu block.value)

Edit2: Bunun arasında üzlər düzəltməliyəm. Bu, ArcScene-də hazırlanmış daha yaxşı görselləşdirmədir.


3 Cavablar 3

Bəzi sınaqlardan sonra həll sadə görünür (bu yazı olduqca faydalı oldu):

Anlamaq üçün əsas metod, qısaca sənədləşdirilmiş çevrilmədir, lakin sənədlərdə bütün söylənilməsi lazım olduğu deyilir. Hər bir sadə üçün dəyişdirin. n,: n] çevrilmə matrisini, çevrilmə [:, n ,:] isə matrisin əlaqəli olduğu r vektorunu ehtiva edir. Görünür ki, r vektoru simpleksin son zirvəsi kimi seçilib.

Başqa bir çətin məqam b-nin necə alınacağıdır, çünki etmək istədiyim bir şeydir

Əslində nöqtə məhsullarına ehtiyacım var, nöqtə isə iki sıra məhsulu verir. Yuxarıdakı kimi fərdi simplekslərin üzərindəki döngə işləsə də, numpy.einsum olduğu bir addımda daha sürətli edilə bilər:

İndi, v hər bir sadə üçün vertex nöqtələrinin indekslərini ehtiva edir və w müvafiq ağırlıqlara malikdir. İnterpolasiya edilmiş p_values ​​dəyərlərini p nöqtələrindən əldə etmək üçün edirik (qeyd: dəyərlər bunun üçün NumPy massivi olmalıdır):

Yoxsa bunu tək bir np.einsum istifadə edərək tək bir addımla edə bilərik:

Bəzi interpolyasiya edilmiş nöqtələrin ızgaranın xaricində yerləşməsi hallarında bəzi diqqət göstərilməlidir. Bu vəziyyətdə, find_simplex (p) bu nöqtələr üçün -1 qaytarır və sonra onları maskalamalı olacaqsınız (bəlkə də maskalı massivlərdən istifadə edərək).


İddia. Bu ümumiyyətlə mümkün deyil.

Sübut. Xallarınızdakı dörd nöqtə dairəvi deyilsə, Delaunay üçbucağı misilsizdir. Maneə poliqonunda ən azı bir Delaunay olmayan kənar olduğu müddətcə nöqtə dəstinin unikal Delaunay üçbucağına gələ bilməyəcəksiniz. Bunu görmək olduqca asandır: Flip alqoritmində olduğu kimi, diaqonalının Delaunay olması üçün çevrilməli olan ümumi mövqedəki dördbucağı nəzərdən keçirin. İndi pis üçbucaqlardan biri maneə, dördbucağın dörd təpəsinin dəsti nöqtələr dəsti olsun. O zaman açıq şəkildə, heç vaxt Delaunay üçbucağına gələ bilməzsən.

Yeniləmə: Təsvir etdiyiniz problem, Məhdud Delaunay Üçbucaq probleminin xüsusi bir vəziyyətidir. Sizin vəziyyətinizdə, məhdud məhdudlar yalnız maneələrin sərhədlərinin kənarlarıdır. Bunu edə biləcək bir sıra piton kitabxanaları var. Misal üçün


1 Cavab 1

Sizin nümunəniz 3B modeldir. Hər keçiddə əlaqə düyünün olmadığını görürsən. Üzünüzdən düz olmayan səthlər, daha sıx bir üçbucaq şəbəkəsinə sahibdirlər.

Səthləri üçbucaq şəklində təqdim edən bir çox 3D proqramı var. Bəziləri, üçbucaqların vektor kimi proyeksiyasına sahib olan 2 ölçülü tel çərçivə ixracatına imkan verir. Təəssüf ki, məndə belə bir proqram yoxdur. Əldə etdiyim hər bir hissədə, üçbucaqlı meshın 2D vektor şəkli kimi ixrac edilməsi əlildir.

3D-yə getmədən bir formanı üçbucaqlaya bilərsiniz. Əl ilə və ya bəzi üçbucaqlı proqram istifadə edərək edilə bilər. Delaunay üçbucağı bunu bir şəkildə ən yaxşı şəkildə etmək üçün bilinən bir üsuldur. Bu metod təxminən 90 illik bir riyaziyyat qaydasıdır və bir çox qrafika proqramında proqramlaşdırılmışdır.

3B formaları təqdim etmək üçün kölgə tətbiq edən bir raster şəkliniz varsa, məhdud sayda boz rəng və ya rəngə qədər vektorlaşdırmaq (= izləmə bitmap) edə bilərsiniz. Sonra fərqli sahələri fərqli üçbucaq sıxlığına ayırın. Bu şəkildə kölgələməni nümunənizdəki kimi sıxlıqla simulyasiya edə bilərsiniz.

Nəhayət bir üçbucaq aldığınızı düşünək. Inkscape-də qovşaqları və parıltı effektini belə əlavə edə bilərsiniz:

Üçbucaqlar. Ayrı-ayrı xətt seqmentləri olursa, onları qırmağa ehtiyac yoxdur. Bu üçbucaqlar qapalı formalardır (əslində Inkscape'in əvvəlcə yollara çevrilməli olan 3 tərəfli çoxbucaqlı)

Xətt seqmentlərini ayırmaq üçün üçbucaqları qırın

  • hamısını seç
  • ehtiyac olarsa qrupdan çıxarın
  • ehtiyac olarsa, Yol> Nişan yola getməli
  • düyün vasitəsi ilə üçbucaqların üzərinə sürüşdürərək və növbəni eyni vaxtda tutaraq bütün qovşaqları seçin
  • alət seçimləri çubuğunda "Seçilmiş düyünlərdə yolun kəsilməsi" düyməsini basın. goto Path> Break break Bu, bütün üçbucaqları qıraraq xətt seqmentlərini ayırır

Hamısını seçin, vuruş stili panelində hər sətirə nöqtə başlanğıc işarələri verin

Hamısını seçin, hamısını kopyalayın, cütlərə qoyun 3.% 5 bulanıklıq

Əlavə et: Illustrator-da Pathfinder panelindəki "Kontur" funksiyası ilə üçbucaqları qırmaq olar. Nəticə fərqlidir, daha çox əl işinə ehtiyacınız olacaq. Yollar hər kəsişmə nöqtəsində kəsilir. Tək künclərdə qayçı alətinə ehtiyac var. Müsbət tərəf çoxaltmaq və bulanıklaşdırmağa ehtiyac olmadığıdır. Effekt Stylize> Xarici Parıltı əlavə edə bilərsiniz. Ok ucunun düzəldilməsinə vuruşlar panelində bir neçə xəttin eyni nöqtədə birləşdiyi nöqtə qruplarının qarşısını almaq üçün bir parametr lazımdır.

Əlavə et2 3D-də başlayan sadə bir nümunə burada oxunur. Üçbucaqlı mesh təsviri hazırlamaq üçün hansı proqramdan istifadə olunur ?. Verilən qəbz bunu bir neçə dəqiqəyə verə bilər:


Addım 2: Cədvəllərə və məlumat qatlarına baxmaqing

WPSBuilder¶ istifadə

  • Verilənlər bazasının məzmunu istifadə edilərək görünə bilər Display_Database.
  • Bir məkan təbəqəsi istifadə edərək görselleştirilebilir Cədvəl_Vizualizasiya_Həritəsi.
  • Bir məlumat cədvəli istifadə edərək görselleştirilebilir Cədvəl_Vizualizasiya_Veri.

Verilənlər bazasına baxmaq

Cədvəlləri ixrac etmək də mümkündür Export_Table Shapefile, CSV və ya GeoJSON formatında.

Sonra bu cədvəlləri üstünlük verdiyiniz Coğrafi İnformasiya Sisteminə (məs. OrbisGIS, QGIS). Daha sonra məlumat qatınızı, həm də içərisindəki məlumatları qrafik olaraq görselleştirebilirsiniz. Seçdiyiniz CİS ilə tanış olmaq üçün vaxt ayırın.

OrbisGIS / QGIS, bir OSM arxa plan xəritəsi əlavə etməyə imkan verir: https://wiki.openstreetmap.org/wiki/QGIS

OrbisGIS / QGIS qat rənglərini dəyişdirməyə imkan verir (məsələn, yaşılda Surface_osm, bozda Buildings_OSM, qırmızıda ROADS).


Üçbucaqlı qaydasız şəbəkə

A Üçbucaqlı Düzensiz Şəbəkə (VÖEN) (üçbucaq ['traɪæ ɳgjʊleɪt] verbo transitivo üçbucaq) bir səthi təmsil etmək üçün bir coğrafi məlumat sistemində (CİS) istifadə olunan rəqəmsal bir məlumat quruluşudur. VÖEN, üst-üstə düşməyən üçbucaqlar şəbəkəsində düzülmüş üç ölçülü koordinatları (x, y və z) olan qeyri-müntəzəm paylanmış qovşaq və xətlərdən ibarət, fiziki quru səthinin və ya dəniz dibinin vektor əsaslı bir təmsilidir. VÖENlər tez-tez rasterləşdirilmiş rəqəmsal yüksəklik modelinin (DEM) yüksəklik məlumatlarından əldə edilir. Xəritə və analizdə bir DEM üzərində bir VÖEN-in istifadəsinin bir üstünlüyü, bir VÖEN-in nöqtələrinin ərazinin dəqiq göstərilməsi üçün hansı nöqtələrin ən vacib olduğunu müəyyənləşdirən bir alqoritmə əsaslanaraq dəyişkən paylanmasıdır. Bu səbəbdən məlumat girişi çevikdir və müntəzəm paylanmış nöqtələri olan bir DEM-dən daha az nöqtənin saxlanılması lazımdır. Bir VÖEN, bir səthin meylinin və aspektinin təhlili kimi bəzi CİS tətbiqləri üçün DEM rasterindən daha az uyğun olsa da, VÖEN-lər ərazini üç ölçüdə təsvir edə bilmək üstünlüyünə malikdir. Bununla birlikdə, VÖEN-lərin dezavantajları var və hər layihə üçün uyğun deyil. VÖEN istifadə edərkən, faktiki üçbucaqlar haqqında məlumatlar itirə bilər. Həm də VÖEN-lər xətti olduğundan bir çox kənarlar şəkli pozaraq pozğun görünür. [1]

Üçbucaqlı Düzensiz Şəbəkə, üst-üstə düşməyən üçbucaqların tessellasyonu ilə topoqrafik yüksəklik səthini təmsil edir və köşələrində yüksəkliklər var. Üç ölçülü vizualizasiyalar üçbucaqlı tərəflərin göstərilməsi ilə asanlıqla yaradılır. Səth hündürlüyündə çox az dəyişiklik olan bölgələrdə nöqtələr geniş aralıqda ola bilər, hündürlükdə daha sıx dəyişkənliklərdə nöqtə sıxlığı artır.

Bir VÖEN tipik olaraq Delaunay üçbucağına əsaslanır, lakin faydası giriş məlumat nöqtələrinin seçimi ilə məhdudlaşacaqdır: yaxşı seçilmiş nöqtələr topoqrafik zirvələr, yamacın qırılması, silsilələr kimi səth şəklində əhəmiyyətli dəyişikliklər əldə etmək üçün yerləşəcəkdir. , dərə döşəmələri, çuxurlar və bağlar.

Üstün üst-üstə düşən bir VÖEN yaratmaq texniki cəhətdən mümkündür. [2] Belə VÖEN-lər, aşınmalar və mağaralar da daxil olmaqla müəyyən coğrafi xüsusiyyətlərin modelləşdirilməsi üçün faydalı ola bilər, lakin bütün CİS paketləri bu VÖEN-ləri idarə etmək üçün nəzərdə tutulmayıb. Bir VÖEN-in öz-özünə üst-üstə düşməyən hissəsinə bəzən funksional ərazi deyilir.

Ümumiyyətlə 3 ölçülü məlumatlar (x, y və z) və topoqrafiya ilə əlaqəli olmasına baxmayaraq, VÖEN-lər üfüqi (x və y) paylanmaların və əlaqələrin təsviri və təhlili üçün də faydalıdır.

CİS üçün ilk üçbucaqlı qaydasız şəbəkə proqramı 1973-cü ildə Simon Fraser Universitetində Randolph Franklin tərəfindən yazılmışdır. [3]


Sintaksis

Yaranacaq VÖEN verilənlər bazası.

Çıxış TIN-in məkan referansı proqnozlaşdırılan koordinat sisteminə qoyulmalıdır. Coğrafi koordinat sistemləri tövsiyə edilmir, çünki XY koordinatları açısal vahidlərlə ifadə edildikdə Delaunay üçbucağına zəmanət verilə bilməz ki, bu da yamac, həcm və görmə xətti kimi məsafəyə əsaslanan hesablamaların dəqiqliyinə mənfi təsir göstərə bilər.

VÖEN-in tərifinə kömək edəcək giriş xüsusiyyətləri və bunlarla əlaqəli xüsusiyyətlər.

  • in_features —Həndəsi VÖEN-ə idxal ediləcək xüsusiyyət.
  • height_field —Giriş xüsusiyyətləri üçün yüksəklik mənbəyi. Giriş xüsusiyyətinin atribut cədvəlindəki hər hansı bir ədədi sahə, 3D xüsusiyyətlərinin Z dəyərləri üçün Shape.Z və həndəsə ilə birlikdə saxlanılan M dəyərləri üçün Shape.M ilə birlikdə göstərilə bilər. & LtNone & gt açar sözünün seçilməsi xüsusiyyətin hündürlüyünün ətraf səthdən interpolasiya olunmasına səbəb olacaq.
  • sf_type - Giriş xüsusiyyətinin VÖEN səthini müəyyənləşdirməsindəki rolu. Düzgün seçimlər giriş xüsusiyyətlərinin həndəsəsindən asılıdır. Nöqtə və çox nöqtəli xüsusiyyətlər VÖEN məlumat qovşaqları kimi saxlanılan yüksəklik dəyərlərinə kömək edən Mass_Points olaraq təyin edilə bilər. Xətt xüsusiyyətləri Hard_Line və ya Soft_Line göstərərək Mass_Points və ya breaklines kimi təyin edilə bilər. Çoxbucaqlı xüsusiyyətlər, Hard_Clip və ya Soft_Clip təyin edərək interpolasiya sərhədini, Hard_Erase və ya Soft_Erase seçərək məlumatları olmayan daxili hissələri və ya Hard_Replace və ya Soft_Replace-i təyin edərək sabit hündürlük sahələrini təyin edərək interpolasiya sərhədini təmsil edə bilər. Əlavə olaraq, çoxbucaqlılar, Hardvalue_Fill və ya Softvalue_Fill təyin edərək tamsayı atribut dəyərlərini təyin etmək üçün də istifadə edilə bilər.
  • tag_field —Giriş xüsusiyyətinin atribut cədvəlindəki tam ədədi sahədən əldə edilmiş ədədi bir atribut, dəyərləri VÖEN-in məlumat elementlərinə əsas aidetmə forması təyin etmək üçün istifadə edilə bilər. & LtNone & gt-nin göstərilməsi etiket dəyərlərinin təyin edilməməsi ilə nəticələnəcəkdir.

VÖEN-in kəsiş xətləri boyunca istifadə olunan üçbucaq texnikasını təyin edir.

  • DELAUNAY - VÖEN, Delaunay uyğun üçbucaqdan istifadə edəcək ki, bu da kəsik xətlərinin hər seqmentini çoxsaylı üçbucaq kənarları yaratmaq üçün sıxlaşdıra bilər. Bu standartdır.
  • CONSTRAINED_DELAUNAY - VÖEN hər seqmenti tək kənar olaraq əlavə edəcək məhdud Delaunay üçbucağından istifadə edəcəkdir. Delaunay üçbucaq qaydaları, sıxlaşmayacaq fasilələr xaricində hər yerdə yerinə yetirilir.


Videoya baxın: Lesson 3: QGIS Tutorial to clip vector layer in Hindi (Oktyabr 2021).