Zruck zum Blog, du Zniachtl
März 2020·1 Min. zum LesnVo da KI übersetzt

NASA-Höhendaten visualisiern

#hgt#nasa#srtm

A klans Snippet zum Visualisiern von de NASA-Höhendaten. De Daten gibt's do: https://lpdaac.usgs.gov/products/srtmgl3v003/

Des Skript muass auf'n Server glodn wern, für de Meta-Datei muass da HTTP-Server Schreibrechte hom. Im ersten Durchlauf wird zur bessern Visualisierung und zum Beschleunigen weiterer Renderings a Metadatei erzeugt, in da de kleinste bzw. größte Höhe gspeichert wird. De Visualisierung müsst no a bissl optimiert wern, wer do Ideen oda Tipps hot, wia ma de Farbgebung a bissl realistischer gestoitn kann, darf ma gern an srtm@devdave.de schreibn :-) Vül Spaß.

<?php
$filename = 'N49E008.hgt';
$gd = imagecreatetruecolor(1201, 1201);
header('Content-Type: image/png');
$minRendered = $maxRendered = 0;
if (file_exists($filename . ".meta")) {
  $createMeta = false;
  list($minH, $maxH) = explode(";", file_get_contents($filename . ".meta"));
} else {
  $createMeta = true;
  $minH = 0;
  $maxH = 2000;
}
$r = $g = $b = 0;
$range = 255 / (($maxH - $minH) / 3);
for ($i = $minH; $i < $maxH; $i++) {
  switch (0) {
    case $i % 3: $r += $range;
    case $i % 2: $g += $range;
    case $i % 1: $b += $range;
  }
  $color[$i] = imagecolorallocate($gd, $r, $g, $b);
}
$fh = fopen($filename, 'rb');
for ($y = 0; $y < 1201; $y++)
for ($x = 0; $x < 1201; $x++) {
  $h = unpack("s", strrev(fread($fh, 2)))[1];
  if ($h == "-32768") continue;
  if ($createMeta) {
    if ($h < $minRendered) $minRendered = $h;
    if ($h > $maxRendered) $maxRendered = $h;
  }
  imagesetpixel($gd, $x, $y, $color[$h]);
}
fclose($fh);
imagepng($gd);
if ($createMeta) file_put_contents($filename . ".meta", $minRendered . ";" . $maxRendered);
?>
NeicherSimultanschachElteryoutube-dl: MP3 schnö downloadn