04/30/2005 20:40

C-Shell Scriptaufbau und -erstellung

Beispiel: Export Script "TDF to ASCII" incl. Geoinformationen

#! /bin/csh -fx


cd /usr/data/maroc/masked_files/ohne_meer/

foreach file (noaa-14_utm.wgs84_????.??.??.??.????.??.??)
angles \
latitude='yes' \
longitude='yes' \
sat_zenith='n' \
sun_zenith='n' \
scatter_phase='n' \
sun_reflection='n' \
rel_azimuth='n' \
store_cosines='n' \
real_output='y' \
poly_size='100' \
$file


expasc \
include_vars='latitude longitude avhrr_ch1'\
all_same_dim='yes'\
list_dims='no'\
$file \
$file.export

echo removing null data points

sed '/\*\*\*/s//0/g' $file.export >$file.idl

rm $file.export
mv $file.idl /usr/data/maroc/
end

So beginnen die C-shell Scripts in der Regel; "-fx" zeigt alle Schritte während der Prozessierung an. Wenn nur "-f" dort steht geschieht die Prozessierung im Hintergrund.

Mit "cd /..." wird der Pfad der Input Files festgelegt. Dann beginnt die Schleife (hier die "Foreach Schleife"); Hier werden alle noaa-14 Files mit spezifischen Filenamen prozesssiert. "noaa-14*" würde bedeuten, dass alle Noaa 14 in einem Ordner exportiert werden.

Mit "angle" beginnt erst das Terascan Modul. Zu dem NOAA Input File werden 2 synthetische Kanäle angehängt (lat/lon). Es wäre möglich für andere Bearbeitungsziele weitere Kanäle anzuhängen. (siehe auch "thelp angle" oder angle)

 

Anschließend wird der TDF File mit dem Modul "expasc" ins ASCII Format exportiert. Alle Kanäle (hier nur 1der 5 NOAA KAnäle dargestellt) incl. der Geoinformationen werden exportiert.

 

In Terascan werden Pixel ohne Daten mit "***" gekennzeichnet. Dies führt bei ENVI, ERDAS & Co. zu Problemen. Deswegen wird "***" duch eine beliebig festgelegte Zahl ersetzt z.B. "0" oder "-99"; Der "bereinigte" File wird von "$file.export" in "$file.idl" umbenannt und "$file.export" gelöscht. Dann kann der File in einen anderen Ordner verschoben werden. Falls nicht nötig, wird ein Befehl in der C-SHELL mit einer vorangestellten "#" auskommentiert.

Mit "end" wird die "foreach" Schleife geschlossen!

Das oben genannte Script beruht auf den Überlegungen dieser GRUNDLAGENSEITE!!

C-SHELL Scripte können z.B. mit dem Editor "nedit" erstellt werden. Nach dem erstmaligen Speichern des Scripts auf der Festplatte muss immer (!!) der Befehl "chmod 775" "Scriptname" eingegeben werden, um das Script ausführbar zu machen!.

Hat man z.B. ein Modul manuell durchlaufen lassen (z.B. "angle") kann man mit dem Befehl "audit" "TDF FILE" nachkontrollieren, was mit dem NOAA File in der Prozessierung geschehen ist. Mit "PASTE" und "COPY" können dann die Befehle in einen Editor übertragen werden, um ein neues Script zu erstellen. Man spart sich so die einiges an Tipparbeit!!

Achtung: In "nedit" werden Zeichen (wie Kommas, etc.) u.U.automatisch (??) eingefügt, ohne sichtbar zu werden. MAN SIEHT DEN FEHLER nicht, obwohl in der Fehlermeldung gesagt wird, es seien Zeichen zu viel oder zu wenig vorhanden! Abhilfe schafft oft nur das Anlegen eines komplett neuen Scripts!!

Eine gute Einführung in die Programmierung von C-Shell Scripten liefert diese Seite