#Dieses Script verarbeitet NOAA16 Files mit AVHRR Channel 3a (siehe "emathp")aus dem Jahre 2002 (Jahreswahl siehe "hrptin"=>pass_year); #Es werden Rohdaten Level 1B eingelesen, der Satscanwinkel auf 55° beschränkt, navigiert, georeferenziert, das Aufnahmedatum #ausgelesen und an den Filename angehängt, Wolken maskiert, das georeferenzierte Image mit der Wolkenmaske kombiniert, NDVI berechnt, #Filename umbenannt, dass sie von Erdas & Co. eingelesen werden können, alle 5 Channel sowie die NDVI Files werden ins ASCII Format #exportiert. In ENVI IDL können diese ASCII Files importiert und mit den GEO -INfos z.B. in ein ERDAS lesbares Format exportiert werden. #Alle für dieses Script benötigten Unterprogramme liegen in /usr/data/maroc/ #"datum_add_5ch_cloudmasked_tdftoascii.csh", "datum_add_ndvi_tdftoascii.csh", "ndvi_emathp_script", "combine_script_5ch_noaa16_ch3a.csh" #"sea_mask_noaa16.csh" sind zur vollständigen Prozessierung nötig, ebenso wie der "Master File, der die Projektion + das AOI beinhaltet.(Speicherort des #Masters: /wolga/TERA_SCRIPT/MOROCCO/Master_marokko_utmwgs84.mas) # #31.05.2002 #! /bin/csh -fx cd /yukon/ftp/NOAA/ foreach file (NSS.LHRR.NL.D*) hrptin \ header_size='16384' \ hrpt_format='klmlacp' \ hrpt_types='avhrr' \ on_pass_disk=no \ tape_device=$file \ pass_year=2002 \ channels=1,2,3,4,5 \ fix_missing='yes' \ sharpen='y y y y y' \ calibrate='yes' \ temp_units='celsius' \ byte_output='no' \ full_report='no' \ solar_corr='no' \ geo_correct='y' \ delta_line='1' \ delta_sample='1' \ use_master='yes' \ master_file='/wolga/TERA_SCRIPT/MOROCCO/Master_marokko_utmwgs84.mas' \ $file echo HRPTIN DATENPROZESSIERUNG ABGESCHLOSSEN angles \ latitude='n' \ longitude='n' \ sat_zenith='yes' \ sun_zenith='n' \ scatter_phase='n' \ sun_reflection='n' \ rel_azimuth='n' \ store_cosines='n' \ real_output='yes' \ poly_size='100' \ $file.avhrr emathp \ expr_vars='avhrr_ch1 avhrr_ch2 avhrr_ch3a avhrr_ch4 avhrr_ch5 sat_zenith' \ num_exprs='10' \ y1_expr='x1' \ y2_expr='x2' \ y3_expr='x3' \ y4_expr='x4' \ y5_expr='x5' \ y6_expr='x6<=55 ? x1 : badval' \ y7_expr='x6<=55 ? x2 : badval' \ y8_expr='x6<=55 ? x3 : badval' \ y9_expr='x6<=55 ? x4 : badval' \ y10_expr='x6<=55 ? x5 : badval' \ save_exprs='6 7 8 9 10' \ var_names='avhrr_ch1 avhrr_ch2 avhrr_ch3a avhrr_ch4 avhrr_ch5' \ var_units='albedo*100% albedo*100% temp_deg_c temp_deg_c temp_deg_c' \ var_types='short short short short short' \ scale_offsets='0 0 0 0 0' \ scale_factors='1 1 1 1 1' \ $file.avhrr \ $file.avhrr.zen echo SAT_ZENITH ANGLE BEGRENZUNG AUF 55° ABGESCHLOSSEN navbox2 \ variable= \ coast_file='dcw.coast' \ box_height='50' \ box_width='50' \ min_cross_dev='2.5' \ min_feature='15' \ max_regions='4' \ min_region_perc='10' \ min_coast_pts='40' \ min_sat_elev='0' \ min_good_boxes='1' \ $file.avhrr.zen \ navboxes nav2 min_good_boxes=1 \ expr_vars='avhrr_ch1 avhrr_ch2' \ expression='x1' \ box_file='navboxes' \ coast_file='dcw.coast' \ max_line_shift='15' \ max_samp_shift='15' \ fix_attitude='yes' \ reset_sat='yes' \ use_time='yes' \ method='edge' \ min_coast_pts='45' \ min_edge_diff='1' \ min_edge_perc='90' \ $file.avhrr.zen >& /tmp/rest cat /tmp/rest | grep "boxes used ..." | uniq | awk '{ print $2 }' set nbox=`cat /tmp/rest | grep "boxes used ..." | uniq | awk '{ printf "%d\n",$2 }'` if ($nbox <= 0) then echo "Die anzahl der Verwendeten Boxen ist $nbox" else navbox2 \ variable= \ coast_file='dcw.coast' \ box_height='70' \ box_width='70' \ min_cross_dev='2.5' \ min_feature='15' \ max_regions='4' \ min_region_perc='10' \ min_coast_pts='40' \ min_sat_elev='0' \ min_good_boxes='1' \ $file.avhrr.zen \ navboxes nav2 min_good_boxes=1 \ expr_vars='avhrr_ch1 avhrr_ch2' \ expression='x1' \ box_file='navboxes' \ coast_file='dcw.coast' \ max_line_shift='15' \ max_samp_shift='15' \ fix_attitude='yes' \ reset_sat='yes' \ use_time='yes' \ method='edge' \ min_coast_pts='40' \ min_edge_diff='1' \ min_edge_perc='90' \ $file.avhrr.zen rm navboxes endif echo NAVIGATION BEENDET echo BEGIN GEOREFERENZIERUNG fastreg2 \ master_file='/wolga/TERA_SCRIPT/MOROCCO/Master_marokko_utmwgs84.mas' \ master_var= \ include_vars= \ brute_force='no' \ poly_size='100' \ interpolate='nn' \ off_protect='no' \ whole_input='no' \ add_to_output='no' \ $file.avhrr.zen \ $file.geo echo JULDAT BERECHNUNG set pass_date=`getinfo attr_name=pass_date $file.geo` set projection_name=`getinfo attr_name=projection_name $file.geo` set satellite=`getinfo attr_name=satellite $file.geo` set start_time=`getinfo attr_name=start_time $file.geo` #set new_pass_date=`echo $pass_date | sed 'y/\//./'` #input jahr, monat, tag #output juldat set jahr = `echo $pass_date | awk '{split($0,a,"/"); print a[1]}'` set month = `echo $pass_date | awk '{split($0,a,"/"); print a[2]}'` set tag = `echo $pass_date | awk '{split($0,a,"/"); print a[3]}'` set mon=(31 28 31 30 31 30 31 31 30 31 30 31) set jtest=`expr $jahr \% 4` set day=0 #ab hier kommt der kram aus der offset-berechnung der Jahre ab dem 1.1.1972 set anfang=1972 set diff=0 set offset=0 set z2=0 echo $jtest #differnz der jahre @ diff = $jahr - $anfang while(${z2} <= `expr $diff - 1`) @ offset =$offset + 365 @ z2++ if ($z2 % 4 == 0) then @ offset = $offset + 1 #addieren im Schaltjahr einen Tag mehr endif end echo $offset #offset ferig #berechnung der Tage in einem Jahr if ($jtest == 0) then @ mon[2] += 1 echo $mon[2] endif set z=1 while(${z} <= `expr $month - 1`) @ day = $day + $mon[$z] @ z += 1 end echo $day @ julday = $day + $tag echo $julday #tag ist berechnet #addition des Tages im Jahr plus offeset seit 1.1.1972 set output=0 @ output = $julday + $offset echo "fertig" echo $output cp -f $file.geo ${satellite}_${projection_name}.wgs84_${output}_${start_time}.av mv -f ${satellite}_${projection_name}.wgs84_${output}_${start_time}.av /usr/data/maroc/datadir/ echo WOLKENMASKIERUNG avcloud \ day_sun_elev='10' \ night_sun_elev='-5' \ min_land_temp='-10' \ land_temp_std='1.5' \ min_sea_temp='0' \ sea_temp_std='0.25' \ max_land_rad='40' \ max_sea_rad='10' \ sea_rad_std='0.2' \ max_coast_rad='15' \ min_land_r2/r1='0' \ max_sea_r2/r1='0.75' \ min_sun_reflect='50' \ max_ch4_ch3='1' \ max_ch3_ch5='1.5' \ ch4_ch5_test='yes' \ local_limits='yes' \ local_area_size='100' \ min_area_pts='1000' \ land_temp_range='40' \ sea_temp_range='5' \ land_rad_range='40' \ sea_rad_range='5' \ snow_ice='no' \ $file.geo \ ${satellite}_${projection_name}.wgs84_${output}_${start_time}.av mv -f ${satellite}_${projection_name}.wgs84_${output}_${start_time}.av /usr/data/maroc/maskdir/ echo Verschneiden des georeferenzierten und wolkenmaskierten Images cd /usr/data/maroc/ set maskdir=/usr/data/maroc/maskdir set datadir=/usr/data/maroc/datadir set outputdir=/usr/data/maroc/masked_files set maskvar=cloud combine_script_5ch_noaa16_ch3a.csh ndvi_emathp_script /usr/data/maroc/masked_files/${satellite}_${projection_name}.wgs84_${output}_${start_time}.av ${satellite}_${projection_name}.wgs84_${output}_${start_time} mv -f ${satellite}_${projection_name}.wgs84_${output}_${start_time} /usr/data/maroc/all/ mv -f /usr/data/maroc/datadir/${satellite}_${projection_name}.wgs84_${output}_${start_time}.av /usr/data/maroc/datatmp/ mv -f /usr/data/maroc/maskdir/${satellite}_${projection_name}.wgs84_${output}_${start_time}.av /usr/data/maroc/masktmp/ echo seamask seamask_noaa16.csh echo DATUMUMBENENNUNGSTOOL und TDF TO ASCII der georeferenzierten und wolkenmaskierten FILES datum_add_5ch_cloudmasked_tdftoascii.csh #datum_add_5ch_sea_cloudmasked_tdftoascii_14.06.02.csh echo DATUMUMBENENNUNGSTOOL und TDF TO ASCII der NDVI FILES datum_add_ndvi_tdftoascii.csh #cd /usr/data/Rohdaten_lac_2002/zubearbeiten/ cd /yukon/ftp/NOAA/ #cd /usr/data/Rohdaten_lac_2002/ echo LÖSCHEN DER ZWISCHENPRODUKTE rm $file.avhrr.zen rm $file.avhrr rm $file.geo #rm navboxes mv $file /usr/data/Rohdaten_lac_2002/ end