Hidrológiai Közlöny 1996 (76. évfolyam)

6. szám - Zsuffa András: Földrajzi hidrológiai atlasz szerkesztése

358 HIDROLÓGIAI KÖZLÖNY 1996. 76. ÉVI". 3. SZ.. Az egyetlen probléma, hogy mikor tekintünk két víz­folyást egymásba torkollónak Erre - az általunk alkal­mazott koordinátás tárolás mellett - csak az euklideszi távolság kiszámítása alkalmas, ha ez kisebb egy adott értéknél, a pontot torkolatnak tekintjük. A programban ez az adott érték 0.005 . Megjegyzés: Mértékegységet szándékosan nem írunk, mivel a pro­gram sem használja. A hosszmértéknek azt tekintjük, a­mit az AutoCad-ben egységnek használtunk, azaz, ha a koordinátákat kilométerben adtuk meg, akkor a program is km-rel, illetve km 2-rel számol (általában ezt javasol­juk, de természetesen akár verszt-ben is lehet dolgozni). Arra azért oda kell figyelni, hogy a választott mérték­egységek mellett a 0.005 érték képes legyen a torkolat egyértelmű azonosítására. A gyakorlatban azonban ez nem probléma, mert a vízhálózat (és a vízgyűjtőhatárok) tabletről történő bevitelénél is ki lehet (és a jelen rend­szerben ki is kell) használni az AutoCad-nék azt a lehe­tőségét, hogy egy vonalat egy másik vonal végpontjába húzzon (ENDPOINT OF). Ekkor a két egyenes közös végpontjainak koordinátái az AutoCad numerikus fel­bontásán belül azonosak. A DXF formátum előállítása­kor a tizedesek számát meg kell adni, ahol a 0,005-nek megfelelően elegendő a 4, sőt akár a 3 tizedes is. A programnak természetesen itt az összes olyan víz­folyás-poligonon végig kell mennie, amelynek utolsó tagja 0 NLI értékkel zárul. Ezekhez kell a kapcsolódási pontokat megkeresni. A kapcsolódási pontok keresése­kor viszont az összes többi poligon összes pontján végig kell menni, hiszen előre semmit sem tudunk a pont he­lyéről. Vízgyűjtő-határok esetén minden olyan pont, ahol legalább három határvonal találkozik, kapcsolódási pont. Itt nyilván egy kicsit más az algoritmus, hurok­gráfról lévén szó. Azért, hogy az összes rész-vízgyűjtőt külön is kezelni tudjuk, minden határ-poligonnak kap­csolódási ponttól kapcsolódási pontig kell tartania. Ez nemcsak azt jelenti, hogy nem érhet véget egyik sem a 'levegőben", hanem azt is, hogy azt a poligont, amely közbülső pontként tartalmaz kapcsolódási pontot, abban a pontban meg kell szakítani és két külön poligonra kell bontani (a rész-vízgyűjtő kereső algoritmusnál ezt rész­letesen megindokoljuk). Külön beépítettünk egy ellenőr­zést, ami azt nézi végig, hogy egy határ-poligon kezdő­és végpontja egy-egy másik határ-poligon kezdő- vagy végpontja-e. Ezzel tudjuk biztosítani, hogy minden víz­gyűjtő-határ zárt poligont alkot A program következő lépése még mindig az adat-elő­készítéshez tartozik. Ebben a részben az immár folyto­nosan összekapcsolt vízfolyás-gráfot vízfolyás-szaka­szokra osztjuk. Ezeket a szakaszokat szektor-oknak ne­vezzük. Szektornak tekintünk minden forrástól a legelső torkolatig, illetve torkolattól a következő torkolatig tartó folytonos vízfolyás-poligont. Ez azt is jelenti, hogy egy szektor vagy forrással kezdődik, vagy két másik szektor egybetorkollásával és mindig torkolattal zárul. Minden egyes szektorról tároljuk kezdőpontjának és végpontjának indexét a vízfolyáspontokat tartalmazó tömbben, a hosszát, a Schumm-Strahler algoritmus és a Shreeve algoritmus szerinti kategória értékét. A Schumm-Strahler és Shreeve kategória értékek meghatározása A most már szektorokra osztott vízfolyás­poligonokon lényegesen könnyebb a keresés. Végigme­gyünk a szektorokon, minden egyes szektor kezdőpont indexét összehasonlítjuk az összes többi vízfolyáspont NLI értékével, s ha egyikkel sem egyezik (azaz semelyik poligonnak sem torkolati pontja), akkor forrás-pont. Az összes ilyen szektor Schumm-Strahler kategória értéke 1, a többié ekkor még 0. Ezután egy ciklus következik, amely végigmegy az összes 0 kategóriájú szektoron (ezek már biztos, hogy nem forrással kezdődnek, hanem két másik szektor egy­betorkollásával). Megkeresi mindegyik szektorhoz a be­le torkolló két másikat. Ha mindkettő kategória-száma különbözik 0-tól (azaz már megvan), akkor a Schumm­Strahler algoritmus szerint meghatározza az aktuális szektor kategória értékét. A ciklust mindaddig ismétli, amíg egyetlen 0 kategória értékű szakasz sem marad. A Shreeve algoritmus szerinti kategorizálás esetén a forrásoktól induló szektorok meghatározása ugyanígy történik, a többinél - az algoritmusnak megfelelően - a betorkolló szektor-értékek összege lesz az adott szektor Shreeve kategória értéke. Ezzel az adat-előkészítés befejeződött. A program megjeleníti a vízfolyásokat és az összes vízgyűjtő-határt. Tekintsük át a rendelkezésre álló funk­ciókat: /. Egy rész-vízgyűjtő adatainak értékelése Ehhez az egérrel rá kell kattintanunk a kérdéses rész­vízgyűjtő egyik belső pontjára. Ezután a programnak meg kell határoznia azt a legkisebb vízgyűjtőt, amely a pontot még tartalmazza. Ebben az algoritmusban annyi szépség van, hogy részletezzük: Először megkeresi a ponthoz legközelebb lévő határ­pontot az összes határpont és az adott pont euklideszi tá­volságának kiszámításával, majd visszagyalogol az in­dexek szerint a megtalált határ-poligon legelső pontjára. Ezzel megvan a vízgyűjtő-határ első vonala Elindul a vonal mentén a szakasz végéig. Itt elvileg akár kettőnél több felé is elágazhat a vízgyűjtő-határ, ezért a követke­ző történik. Az utolsó egyenes szakasz (poligon-él) és a kiinduló többi határ-poligon első szakaszainak szögeit kiszámolja és kiválasztja közülük a legkisebbet és a leg­nagyobbat. Két vonalat kell tehát végigkövetni. Minden egyes újabb poligon csomópontban ezután az első poligon után eldöntött szöget kell venni (azaz az egyik esetben mindig legkisebbet, a másikban mindig a legna­gyobbat). Három dolog biztos: 1. Mindkét vonalon visszajutunk egyszer a kiinduló poligon kezdőpontjába (hurok-gráf). 2. Az így kapott két zárt poligon egyike tartalmazza a megadott pontot.

Next

/
Thumbnails
Contents