Luftbilder von Aerowest

Wo kann man denn das Skript herunterladen?

Gruß,
Mondschein

Da kannst du ihn nur selber danach fragen. Er hatte es mir angeboten, wegen mangelnder Perlkenntnisse habe ich mich nur über deren technische Umsetzung erkundigt und es dann dabei belassen.

Hallo AJoNee

Warum nicht einfach die Bilder unterschiedlicher Auflösung in jeweils eigene Ordner ablegen?
Dann gibst du die Dateien als Ordner_2000/* und Ordner_1000/* an und schon hast du die richtige Reihenfolge.
Alternativ kannst du natürlich vor den Dateinamen jeweils ein “eins_” respektive “zwei_” hängen, wenn es einfacher ist alle Bilder in einem Ordner zu haben.

Edbert (EvanE)

Das Script habe ich bisher nicht veröffentlicht. Kann ich aber machen, wenn Interesse besteht.

Die zugehörigen Posts stehen in Thread Mapserver Luftbilder sortieren:

Ich habe Interesse! :smiley:

Gruß,
Mondschein

Na dann. Ist nur für EPSG31469, da ich bisher nichts anderes gebraucht habe.

#! /usr/bin/perl

### This script reads the images from directory $imgDir, sorts them, and
### creates a new shape file in that directory.

use strict;
use warnings;

### The extracted images are expected in this directory.
my $imgDir = "epsg31469";

opendir(my $dh, $imgDir) or die "Can't opendir $imgDir: $!";
my %images;
while (my $file = readdir($dh)) {
  if ($file =~ m/\.jgw$/) {
    my $filePath = $imgDir."/".$file;
    open(my $fd, $filePath) or die "Cannot read file $filePath: $!";
    my $meterPerPixel = <$fd>;
    $filePath =~ s/jgw$/jpg/;
    $images{$filePath} = $meterPerPixel;
    close($fd);
  }
}
closedir $dh;

my $scriptName = "./run.sh";
open(my $fd, ">", $scriptName) or die "Cannot open run script: $!";
### Delete the old shape file and create a new one.
print $fd "#! /bin/sh\n\nrm $imgDir.sh* $imgDir.dbf\n\ngdaltindex $imgDir.shp \\\n";
foreach my $image (sort {$images{$b} <=> $images{$a}} keys(%images)) {
  print $fd "  $image \\\n";
}
print $fd "  2>&1 | grep -v \"is already in tileindex. Skipping it.\"\n";
close($fd);
chmod(0755, $scriptName);
### Run the script that we just created.
system($scriptName);

Edit: Ach so, funktioniert erstmal nur unter Unix/Linux wegen /bin/sh, rm und grep. Aber mal ehrlich, wer nimmt denn noch was anderes :slight_smile:

:slight_smile:
Danke, werde es bei Gelegenheit ausprobieren.

Gruß,
Mondschein

Hallo,

ich habe ein Problem beim aufrufen des mapservers.

gebe ich die addresse http://127.0.0.1/cgi-bin/mapserv?map=/media/xxx//aerowest/osm.map& bei der WMS Service URL an, kommt die Meldung “Konnte die Liste der WMS Ebenen nicht auswerten.”

gebe ich dieselbe Addresse im Browser an kommt die Fehlermeldung “msLoadMap(): Unable to access file. (/media/xxx/aerowest/osm.map)”

Liegt das an fehlenden Zugriffsrechten?

Die Frage wäre zu nächst ob die Datei osm.map dort liegt. Falls diese nicht angelegt ist, solltest du das mal ändern.

Entweder die Datei existiert nicht oder dein Webserver (somit auch “mapserv”, welcher mit den Rechten des Webservers läuft) hat nicht die nötigen Leserechte auf diese Datei und die Verzeichnisse in denen sich diese Datei befindet.
Webserver (z.B. Apache und Lighttpd) laufen üblicherweise unter dem Benutzer www-data.

Gruß,
Mondschein

Also die Datei existiert, und “Andere Benutzer” haben die Rechte read write und execute.
Was ich vermutete war eher dass irgendwo eine Apache Einstellung ist, dass der nicht auf das lokale Dateisystem zugreifen darf.

Wenn Du einen anderen Pfad als /mapserver bzw. /mapserver/data verwendest, hast Du alle Pfadangaben in osm.map angepasst?

Ich hatte einen übersehen, deswegen lief es hier anfangs auch nicht, die Fehlermeldung klang ziemlich ähnlich

Bernd

Um sicher zu gehen, nehme die Identität “www-data” an, führe dazu in der Shell als root “su - www-data” aus, dann überprüfst du (natürlich immernoch als “www-data”, im Zweifel mit “id” überprüfen), ob der Befehl “cat /media/xxx/aerowest/osm.map” (xxx vermutlich ändern) dir den Inhalt der Datei auf dem Bildschirm ausgibt.
Ist das der Fall, dann liegt es nicht an den Dateisystem-Zugriffsrechten.

Gruß,
Mondschein

Das ist von Distri zu Distri anders, OpenSUSE nimmt wwwrun :wink:

Bernd

Dann also hier “su - wwwrun”. :wink:
Kann man z.B. mit “ps -ef | grep apache” nachsehen.

Gruß,
Mondschein

Danke euch beiden.

Jetzt funktioniert es.
Das ganze lag an den fehlenden Zugriffsrechten für das eingebundene Laufwerk, die sich der Änderung aber erfolgreich widersetzt haben.
Jetzt habe ich es auf eine andere Platte kopiert und nach beseitigung anderer noch auftretender Fehler habe ich gerade das erste Aerowestbild in JOSM gesehen.

Vielleicht machst Du eine kurze Zusammenfassung der Probleme, damit anderen auch geholfen werden kann?

thx
Bernd

Im Wiki ist eine Übersicht zu den Aerowest Luftbildern. Dort [1] gibt es auch einen Link, der vorgibt die Abdeckung vom Kreis Wesel darzustellen. Jedoch bekomme ich dort nur eine Werbeseite. Hat sich hier ein Spammer breit gemacht?

[1] http://wiki.openstreetmap.org/wiki/DE:WissensWert/Luftbilder#.C3.9Cbersicht_aller_vorhandenen_Orte

Wurde schon entfernt.
Ein Spammer war es aber nicht:
http://wiki.openstreetmap.org/wiki/User:Daswaldhorn

Gruß,
Mondschein

Also bei mir ging der Link. Es wurde ein Werbelayer eingeblendet (wenn man Adblock ausschaltet), ansonsten war aber alles ok.