Daugiau

3D GIS


Daugelį metų naudojau GIS, o dabar pereinu prie 3D GIS, tačiau man kyla klausimų.

Tarkime, kad turiu trimatį viliage modelį, galiu tai patekti į „Blender“, bet noriu galėti vykdyti GIS tipo užklausas. Taigi noriu, kad kiekvienas pastatas būtų susietas su duomenų baze, parinkčiau pastatus pagal atributus ir erdvinę vietą (pvz., Kiekvienas pastatas su tam tikro tipo stogais, pastatai, esantys vienas nuo kito didesniu nei 10 m atstumu).

Ar tai įmanoma ir kokia yra geriausia programinė įranga darbui? Tikėjausi naudoti tokius dalykus kaip „Blender“, GRASS GIS (galbūt QGIS) ir „MySQL“, naudodamiesi GRASS ryšiu.

Bet koks patarimas yra sveikintinas.


Turėtumėte patikrinti 3D galimybes, kurias Oslandija kuria ant „PostGIS“

https://player.vimeo.com/video/54776907

http://www.oslandia.com/sfcgal-10.html


Gali, bet ... apie dalykus reikia galvoti kitaip.

Kai importuosite GIS duomenis į „Blender“, jie praras atributo duomenis, ypač jei naudosite bet kurį iš galimų papildinių. Norėdami importuoti duomenis į „Blender“ su atributais, turėsite parašyti savo scenarijų (nes nežinau tokio, kuriame nebūtų paprasta importuoti geometriją).

Scenarijus turės importuoti kiekvieną funkciją atskirai (visi žinomi dabartiniai scenarijai, įskaitant mano paties, importuoti visą shapefile kaip vieną „Blender“ objektą). Jums reikės scenarijaus, kad priskirtumėte funkcijoms unikalius pavadinimus (kurie nutiks pagal numatytuosius nustatymus, bet malonu jį valdyti). Šiuo metu turite dvi galimybes. Pirmasis būtų parašyti atskirą scenarijų, susiejantį objekto pavadinimą su jūsų atributų lentele, o kiekviena pasirinkta operacija atliktų paiešką lentelėje ir tada prie pasirinkimo pridėtų funkcijų su atitinkančiu pavadinimu. Alternatyva būtų atributų išsaugojimas žaidimo ypatybėse. Rašydamas tai rinkčiausi ankstesnį požiūrį (funkcijos pavadinimas ir ieškojimas).

Erdvinėms operacijoms vėl turite dvi galimybes. Pirmasis yra pateikti užklausą savo originaliems GIS duomenims iš „Blender“, naudojant GDAL / OGR „Python“ susiejimus, tada naudoti „unquie“ funkcijos pavadinimą kaip „3D“ objektų paiešką „Blender“. Arba, jei norite, kad „Blender“ būtų „labiau įprasta“ ir mažiau priklausytų nuo išorinių duomenų, turite pradėti tai daryti kaip kompiuterinių žaidimų programuotojas. Norėdami tai padaryti, galite naudoti kai kuriuos kraštinės pasirinkimo API skambučius, tokius kaip: bpy.ops.view3d.select_circle, bpy.ops.view3d.select_border arba bpy.ops.view3d.select_lasso ir kt. Ir apibrėžti apskritimo, laukelio geometriją. arba laso pagal artumo kriterijus. Kita alternatyva, be abejo, yra liejimas spinduliais (paeiliui iš kiekvieno POI skirkite spindulį kiekvienam objektui iš eilės ir pridėkite prie savo pasirinkimo rinkinio pagal atstumą, kampą ir pan., Kurį spindulys jums grąžina.

Taigi, iš esmės esate pusiaukelėje, naudodamiesi aprašyta sąranka, tačiau antroji pusė tikriausiai yra lengviausia, kai GDAL sunkiai pakelia išorinius duomenis ir tada susieja rezultatus su „Blender“ objektais unikaliais pavadinimais (tai aš daryčiau!). Manau, kad šis metodas taip pat bus greitesnis ir lengviau scenarijuojamas.

REDAGUOTI (po komentaro): Norėdami paversti taškinius debesis objektais, tiesiog laikykite taškinį debesį kaip dalelių sistemą ir paslėpto sluoksnio medžių modelius laikykite dalelių egzemplioriais. Aš tai darau daug ir tai yra labai tiesiai į priekį iš modeliavimo perspektyvos. Jūsų problema išlieka pasirinkimo metodais, kaip aptarta aukščiau.


Žiūrėti video įrašą: ArcGis 3d Analyst. ArcScene Animation of flood (Spalio Mėn 2021).