GNavigia - Hill sha­ding

Schum­me­rung aus SRTM V3 Da­ten lo­kal er­zeu­gen

Un­ter Schum­me­rung ver­steht die Kar­to­gra­fie, ein Zweig der Geo­dä­sie, die par­ti­el­le Ab­schat­tung von Bil­d­ele­men­ten zur Er­zeu­gung ei­nes räum­li­chen Ein­drucks. Die OSM-Gemein­de hat über vie­le Jah­re Ka­cheln zur Ver­fü­gung ge­stellt, die ei­ne Schum­me­rung rea­li­sie­ren. Die­se teil­trans­pa­ren­ten Bil­der kann GNavigia schon seit lan­ger Zeit ver­ar­bei­ten, das rech­te der bei­den Dop­pel­bil­der zeigt OSM-Daten im Wi­ki­pe­dia Lay­out als Over­lay.
GNavigia Hill shading/Schummerung
Lei­der wer­den die OSM-Kacheln im­mer re­strik­ti­ver ge­hand­habt, was auf die enor­men Kos­ten zu­rück zu füh­ren ist, die die Ser­ver im Un­ter­halt und Da­ten­trans­fer kos­ten. Da­her ruft GNavigia kei­ne Da­ten ab, die nicht in ei­nem Ca­che ge­spei­chert wer­den kön­nen. Da die Schum­me­rung ein im­mens lang­le­bi­ges Pro­dukt ist, liegt es na­he, die­se in Form von Ka­cheln selbst zu be­rech­nen, zu­mal der Be­nut­zer ja für die OSM-Kacheln i. d. R. be­reits ei­nen Ca­che (Zwi­schen­spei­cher) vor­ge­se­hen hat. Das ak­tu­el­le Lay­out ist im lin­ken Bild zu se­hen. Ins­ge­samt wirkt das Bild dunk­ler, aber auch plas­ti­scher, rea­ler und vor al­lem schär­fer als das OSM-Pen­dant. Wie ist das Bild ent­stan­den?

Kei­ne Sor­ge! Was jetzt folgt ist be­reits im­ple­men­tiert und wird mit GNavigia 5.0 (fast) ge­brauchs­fer­tig aus­ge­lie­fert. «Fast» be­deu­tet im Klar­text: So­bald Sie ei­nen Ord­ner für den Ca­che, al­so die Abla­ge der von frem­den Ser­vern ge­la­de­nen Da­ten, an­ge­ben, kön­nen Sie auf die Funk­tio­na­li­tät zu­grei­fen. Set­zen Sie

  • GNAVIGIA_SRTM_CACHE
Fol­gen Sie der Be­schrei­bung un­ter Sys­tem­tipps. Die er­for­der­li­chen Pro­gram­me wer­den mit GNa­vi­gia in­stal­liert. Um ei­ne Schum­me­rung be­rech­nen zu kön­nen, be­nö­tigt man ein di­gi­ta­les Ge­län­de­mo­dell, ei­ne For­mel, die die Hel­lig­keits­wer­te be­rech­net, und je­man­den, der die frei­en Pa­ra­me­ter auf ge­eig­ne­te Wei­se be­stimmt. Das Er­geb­nis, be­rech­net in ei­nem Punkt, kann zwi­schen 0 und 255 lie­gen. Die For­mel ba­siert auf An­ga­ben von ESRI Inc., dem viel­leicht re­nom­mier­tes­ten Na­men in Sa­chen GIS. Sie be­sitzt, wenn man ge­nau hin­schaut, 4 Frei­heits­gra­de:
  • Die ho­ri­zon­ta­le Po­si­ti­on (Rich­tung) der Licht­quel­le, in Grad ge­gen geo­gra­fisch Nord ge­zählt.
  • Die ver­ti­ka­le Po­si­ti­on (Rich­tung) der Licht­quel­le, in Grad ge­gen die Ver­ti­ka­le (Ze­nit) ge­zählt.
  • Die Grö­ße ei­ner so­ge­nann­ten «Zel­le», die die Hel­lig­keit be­stimmt.
  • Der Z-Fak­tor, der die (vir­tu­el­le) Üb­er­hö­hung steu­ert.
Dem ha­be ich noch 3 wei­te­re hin­zu­ge­fügt:
  • Ei­ne Mas­ke zur Glät­tung der Da­ten, im­mer ein un­runder Wert, Mi­ni­mum 1.
  • Ein Wert, der die «ma­xi­ma­le Dun­kel­heit» an­gibt, al­so ei­ne Ska­lie­rung.
  • Ein Schwell­wert, der an­gibt, ab wel­chem Hel­lig­keits­wert «vol­le Hel­lig­keit» an­ge­nom­men wird.

Wa­rum noch ei­ge­ne Pa­ra­me­ter hin­zu er­fin­den? Es ist ei­ne Be­son­der­heit der Schum­me­rung, dass sie sich als Bild mit hin­rei­chen­der Trans­pa­renz über die Kar­te legt, die les­bar «hin­durch schei­nen» muss. Denn die ein­zel­ne Ka­chel be­steht aus ei­ner ein­zi­gen Far­be: Schwarz. Die Hel­lig­keit ent­steht durch Trans­pa­renz, die von 0-255 ab­ge­stuft ist. Wür­de man die Schum­me­rung auf den vol­len Wer­te­be­reich be­zie­hen, gä­be es kom­plett schwar­ze Be­rei­che, die kei­ner­lei Schrift und Zeich­nung durch­las­sen. Al­so muss man dem Ein­halt ge­bie­ten, in­dem man die ma­xi­ma­le Dun­kel­heit be­grenzt. Zu­dem macht es sich gut, wenn man weit­ge­hend fla­che Ge­bie­te mit 100% Trans­pa­renz dar­stellt, sonst wer­den Flüs­se, Seen und Mee­re grau. Schnei­det man die Hel­lig­keit zu früh ab, wir­ken die Über­gän­ge zwi­schen stei­gen­dem und fal­len­dem Ge­län­de sicht­bar un­na­tür­lich.

Der ein­zi­ge Pa­ra­me­ter, der für al­le Zoom­stu­fen der­sel­be ist, ist die ho­ri­zon­ta­le Po­si­ti­on (Rich­tung) der Licht­quel­le. Sie ist auf -45° ge­gen geo­gra­fisch Nord fest­ge­legt. Dies ent­spricht un­se­rem Emp­fin­den - und nur dar­um geht es: Schum­me­rung ist ei­ne Il­lu­si­on, die auf der Er­fah­rung be­ruht, dass Licht (beim Schrei­ben) von links vor­ne kommt und nach rechts un­ten Schat­ten wirft. Be­leuch­tet man die Din­ge (oder die Land­schaft) von un­ten, wie es der Nor­mal­fall bei Luft­bil­dern ist, ent­steht im Kopf ein Bild, das die Tä­ler er­ha­ben und die Berg­käm­me ab­ge­senkt er­schei­nen läßt, ein «pseu­do­sko­pi­scher» Ein­druck.

Es ver­wun­dert da­her nicht, dass den hier pu­bli­zier­ten Pa­ra­me­tern et­wa 50 Stun­den «voll kras­ses Rum­fum­meln» zu­grun­de lie­gen, wie es die jun­ge Ge­ne­ra­ti­on aus­drücken wür­de. Aber das ist nicht die gan­ze Sto­ry, denn man muss sich ja auch die Fra­ge stel­len, wie lan­ge man be­reit ist, auf ein Er­geb­nis auf ei­nem 1920x1200er Mo­ni­tor zu war­ten. Da­zu muss man die Da­ten­quel­le be­trach­ten, wie sie ab­ge­ru­fen wird, wie vie­le Auf­ru­fe man be­nö­tigt etc.

SRTM V2 war ei­ne Re­vo­lu­ti­on. Zum ers­ten Mal konn­te man ein di­gi­ta­les Hö­hen­mo­dell kos­ten­los ab­ru­fen und dar­aus wei­te­re Pro­duk­te ab­lei­ten. SRTM V3 («no vo­ids») ist Evo­lu­ti­on und Re­vo­lu­ti­on zu­gleich. Evo­lu­ti­on, weil man die aus den frü­hen Da­ten nicht er­mit­tel­ba­ren Uns­te­tig­keits- oder Leer­stel­len («vo­ids») aus an­de­ren Re­mo­te Sen­sing Quel­len hin­zu­er­mit­telt hat. Re­vo­lu­ti­on, weil man als An­wen­der an­nah­me­frei je­den be­lie­bi­gen Punkt in­ner­halb des Gül­tig­keits­be­reichs er­mit­teln kann. Zur­zeit wer­den die Da­ten vom U.S. Geo­lo­gi­cal Sur­vey (USGS) ge­hos­tet. Al­ler­dings ist das For­mat noch nicht all­tags­taug­lich. Wa­rum? Soll ich das er­klä­ren? «Musst Du im­mer so weit aus­ho­len?», hät­ten mei­ne Kin­der frü­her mit de­mons­tra­tiv ge­lang­weil­tem Ge­sicht ge­fragt. Be­vor Sie mit ver­gleich­bar ge­lang­weil­tem Ge­sicht vor dem Rech­ner sit­zen und auf ein Hin­ter­grund­bild war­ten, er­klä­re ich es viel­leicht doch:

  • SRTM-Daten wer­den in Por­tio­nen zu 1°x1° aus­ge­lie­fert, ge­packt und im Mo­to­ro­la «big en­di­an» For­mat, wo man je­des By­te noch ein­mal her­um­dre­hen muss, be­vor man es nut­zen kann.
  • Für den o. a. Mo­ni­tor be­nö­tigt man et­wa 40 Ka­cheln.
  • Die Be­rech­nung ei­ner Ka­chel von 256x256 Pi­xeln² be­nö­tigt et­wa 0,5 Se­kun­den, so­fern die Hö­hen­da­ten ge­la­den sind, al­so 20 Se­kun­den (oder 1 Se­kun­de, wenn aus dem Ca­che ver­füg­bar).
  • In der Zoom­stu­fe 7 deckt je­de Ka­chel ei­nen Be­reich von 3°x3° ab. Al­so muss man pro Ka­chel bis zu 9 Da­tei­en la­den. Das dau­ert 1 Se­kun­de/Da­tei, al­so 9 Se­kun­den, so­fern nicht im SRTM-Cache ver­füg­bar.
Im un­güns­tigs­ten Fall, wenn sich we­der Ka­cheln noch SRTM-Daten im Ca­che be­fin­den, dau­ert es 400 Se­kun­den oder knapp 7 Mi­nu­ten, bis ein Bild der Stu­fe 7 ge­la­den ist. Erst­ma­lig. Da­nach geht al­les ra­send schnell, aber durch die­sen Reis­berg muss man sich fres­sen. Viel­leicht ver­ste­hen Sie jetzt, warum GNavigia Ih­nen ver­bie­tet, Hö­hen­mo­del­le jen­seits der 7. Zoom­stu­fe zu be­rech­nen.  (Ak­tu­el­le Mes­sun­gen ha­ben er­ge­ben, dass ei­ne ein­zi­ge Ka­chel der Stu­fe 4 ei­ne hal­be Mi­nu­te lädt.) Sie kön­nen in die Kon­fi­gu­ra­ti­ons­da­tei von Hand ein­grei­fen und das den­noch zu­las­sen, aber von mir wis­sen Sie das nicht! Wür­den Sie die gan­ze Welt dar­stel­len las­sen wol­len, könn­ten Sie über Nacht auch al­le Da­tei­en von Hand vom USGS-Ser­ver, des­sen Adres­se Sie aus dem Log­fi­le von GNavigia er­mit­telt ha­ben, weil Sie wis­sen, dass es jetzt un­ter %TEMP%\logs ab­ge­legt ist, in das Ca­che Ver­zeich­nis ko­pie­ren. Das geht, weil an­ders als frü­her heu­te die ge­pack­te Da­tei in den Ca­che wan­dert. Ist sie vor­han­den, wird sie ent­packt und dann ge­la­den. 50 Da­tei­en wer­den im Pro­gramm ent­packt vor­rä­tig ge­hal­ten. Das reicht für An­we­dun­gen in großem Maß­stab völ­lig aus. Für un­ser Bei­spiel auf Stu­fe 7 be­nö­ti­gen wir al­ler­dings 360 SRTM-Datei­en, was den in­ter­nen Ca­che über­for­dert. Die Stu­fe 1 er­gibt ein Bild mit 512 Pi­xeln Brei­te. Da­mit müss­te je­de der Da­tei­en im Ca­che ein­mal ent­packt und ge­la­den wer­den.

Da­mit Sie ve­ste­hen, was pas­siert, wenn Sie SRTM-V3 Da­ten an­for­dern, hier ein klei­ner Ex­kurs in die Da­ten­hal­tung des USGS. An­ders als noch bei der V2-Serie wer­den kom­plett «lee­re» Ka­cheln nicht mehr ge­spei­chert son­dern als «nicht vo­han­den» oder, im Klar­text, als HTTP-Return Co­de «404» aus­ge­wie­sen. Die­se Ka­cheln soll das Pro­gramm na­tür­lich nicht im­mer wie­der an­fra­gen; viel­mehr gilt es, sich die­se zu mer­ken und vor­ab aus den An­fra­gen her­aus­zu­fil­tern. Die Da­tei «Ca­cheV3-Code404.txt» im SRTM-Cache spei­chert die In­for­ma­tio­nen. Sie ist zu­gleich Be­stand­teil der In­stal­la­ti­on und wird mit der Da­tei vor Ort ab­ge­gli­chen, will hei­ßen, dass die bis­her als feh­lend be­kann­ten Da­tei­en zu de­nen hin­zu ge­fügt wer­den, die der Be­nut­zer be­reits ge­sam­melt hat. Das mi­ni­miert die Zu­grif­fe auf feh­len­de Da­tei­en, auch wenn der Ser­ver er­fah­rungs­ge­mäß recht schnell mit 404 ant­wor­tet. Der Voll­stän­dig­keit hal­ber sei er­wähnt, dass Punk­te in feh­len­den Da­tei­en als Hö­he «0.0» be­han­delt wer­den.

All­ge­mei­nes zu SRTM V3 Da­tei­en

SRTM-Datei­en wer­den nach den Grad­zah­len der lin­ken un­te­ren Ecke num­me­riert. Bonn (7,1° östl. Län­ge/50,7° nördl. Brei­te) fällt dem­nach in die SRTM-Datei, die mit «N50E007» be­ginnt. Meist kommt noch ein Suf­fix hin­zu, das auf die Art des In­halts hin­weist. Wo sich die SRTM-Datei be­fin­det, ist in der Da­tei GNavigiaDigitalElevation.xml ab­ge­legt, die sich im Ver­zeich­nis der In­stal­la­ti­on be­fin­det. SRTM-Daten sind von Na­tur aus auf ei­nen ge­wis­sen, mitt­le­ren Be­reich der Er­de be­schränkt, der je­man­dem, der mit dem Fahr­rad von Bonn zum Nord­kapp fährt, nicht ge­fal­len wird. Im Nor­den reicht er ge­ra­de bis zur Nord­spit­ze der gro­ßen schwe­di­schen Seen, bis Os­lo und Stock­holm. Dann ist Schluss. In Zah­len­wer­ten be­deu­tet das, dass N60E... be­reits als feh­lend ein­ge­tra­gen ist. Im Sü­den ist der Be­reich noch et­was ge­rin­ger. Aber dort en­den die in­ter­essan­ten Tei­le der Er­de be­reits bei 34° Süd (Süd­afri­ka), 43° Süd (Tas­ma­ni­en) und 55° Süd (Mac­qua­rie Is­land, Tas­ma­ni­en), so­dass aus Sicht eng­lisch spre­chen­der Ge­sel­len al­le we­sent­li­chen Land­mas­sen er­fasst sind. Daraus er­ge­ben sich no­mi­nell 41400 Hö­hen­da­tei­en zum Down­load. Das Ma­xi­mum ei­ner ge­zipp­ten Da­tei ist 1,4 MB. Vie­le Da­tei­en sind klei­ner. Tat­säch­lich ver­blei­ben, wenn man das In­halts­ver­zeich­nis des USGS-Ser­vers ge­nau­er un­ter­sucht, 14297 Da­tei­en, die zu la­den wä­ren, wenn man die Zoom­stu­fe 0, 1, 2 oder 3 dar­stel­len woll­te. Da das In­halts­ver­zeich­nis auch die Grö­ße der ein­zel­nen Da­tei­en aus­weist, be­rech­net man 13,7 GB für al­le Da­ten­sät­ze.

Man könn­te nun mei­nen, dass es voll­kom­men aus­reicht, die 30"-Datei­en des USGS zu la­den, wenn die Zoom­stu­fe in die­sen Be­reich (klei­ne Zahl) vor­stößt. Lei­der sind die­se deut­lich klei­ne­ren Da­tei­en (noch) nicht mit dem Prä­di­kat «no vo­ids» ver­se­hen wor­den, so­dass nicht klar ist, wel­chen Zu­stand sie auf­wei­sen. Für den hier zur An­wen­dung kom­men­den Quell­code ist ein feh­ler­frei­er Da­ten­satz zwin­gend not­wen­dig. Der ak­tu­ell zur An­wen­dung kom­men­de ist ein 3" Da­ten­satz. Das ent­spricht ei­nem Ab­stand von 90 Me­tern am Äqua­tor.

Um Neid oder Ge­nau­ig­keit in die Hö­he zu trei­ben: Zur Un­ter­stüt­zung Afri­kas hat die US Re­gie­rung im Sep­tem­ber 2014 den ori­gi­nären, über­ar­bei­te­ten SRTM-Daten­satz mit ei­ner Auf­lö­sung von 1" frei­ge­ge­ben. Da­mit las­sen sich die Hö­hen zwi­schen Punk­ten mit ei­nem Ab­stand von 30 Me­tern be­rech­nen. We­gen der 9-fach grö­ße­ren Da­ten­men­ge wird die­se Auf­lö­sung von GNavigia aber nicht un­ter­stützt.

Die ak­tu­el­len Pa­ra­me­ter:

Die Zoom­stu­fen 1-3 sind ex­pe­ri­men­tell und de­fi­ni­tiv nicht für den Ge­brauch ge­eig­net.
Zoom
Ze­nit­di­stanz
Mas­ke
Hell­wert
Zel­le Z-Fak­tor Dun­kel­wert
Ver­sion
1
50.0
3
50
120
2.0
100
-
2
50.0 3
50 120 2.0 100
-
3
50.0 3
50 120 2.0 100
-

Zoom
Ze­nit­di­stanz
Mas­ke
Hell­wert
Zel­le Z-Fak­tor Dun­kel­wert
Ver­sion
4
50.0 3
50 120 2.0 100
-
5
45.0 3
50
120
2.0
100
-
6
45.0 1
50
100
2.0 100 -
7
45.0 1
40
80
2.0 100 5.0
8
45.0 1
40
60
2.0 100 5.0
9
35.0 1
35
40
2.0 100 5.0
10
35.0 3
30
25
2.0 100 5.0
11
40.0 3
30
15
2.0 100 5.0
12
40.0 5
25
10
2.0 100 5.0
13
35.0 7
25
10
2.0 120 5.0
14
40.0 19
30
8
2.3 120 5.0
15
45.0 25
40
6
2.8 120 5.0

Die Spal­te «Ver­sion» gibt an, ab wann GNa­vi­gia ­die Zoom­stu­fe un­ter­stüt­zen wird.

Die Welt auf ei­nem Bild

Will man die gan­ze Welt in­klu­si­ve Schum­me­rung auf ei­ne Sei­te ban­nen, be­nö­tigt man ex­pe­ri­men­tel­le Zoom­stu­fen: Die Stu­fe 4 muss, selbst wenn al­le SRTM-Datei­en im Ca­che sind, so vie­le Da­tei­en «an­fas­sen», dass pro Ka­chel 30 Se­kun­den be­nö­tigt wer­den. Je­des der bei­den fol­gen­den Dop­pel­bil­der hat ins­ge­samt 4 Mi­nu­ten für die Dar­stel­lung be­nö­tigt. Wer die Da­ten auf ei­ne SDE legt, kommt schnel­ler zu Ran­de. Die CPU spielt da eher ei­ne un­ter­ge­ord­ne­te Rol­le.
 


Die bei­den Dop­pel­bil­der un­ter­schei­den sich in der Mas­ke, die die Glät­tung der Schum­me­rung be­stimmt. Bie­ten die Stu­fen 6-9 oh­ne Glät­tung knack­schar­fe Bil­der, so wird der Ein­druck bei Stu­fe 4 schnell pi­xe­lig. Schlecht ge­ba­cke­nes Voll­korn­brot sieht ähn­lich aus. Schrift wird ver­schluckt und der Duk­tus kommt grob da­her. Die Glät­tung mit ei­ner Mas­ke von 3x3 Pi­xeln hin­ge­gen wirkt de­zent und den­noch be­stim­mend. Die Al­pen zeich­nen sich klar und deut­lich ab, wir­ken aber nicht so, als sei­en sie ge­ra­de erst auf­ge­fal­tet wor­den. Nicht zu­letzt we­gen der bes­se­ren Les­bar­keit von Schrift wer­den die Stu­fen 1-4 mit ei­ner Mas­ke von 3 aus­ge­lie­fert.

Wenn Sie al­les ver­stan­den ha­ben, kön­nen Sie die Be­rech­nung ei­ner Schum­me­rung auf Skan­di­na­vi­en (Nor­we­gen, Schwe­den, Finn­land) aus­deh­nen. Wie das geht, ist auf un­se­rer Sei­te über das Pro­gramm zur Um­wand­lung von  EU-DEM nach SRTM aus­führ­lich be­schrie­ben.