this is the code: ************************************ #!/usr/bin/perl use NetCDF;
if(@ARGV == 6){ print "ARGV ERROR \n"; print "date hhmm Noise Radius AZ1 AZ2\n"; exit(1); } $date = $ARGV[0]; $hhmn = $ARGV[1]; $opt_Noise = $ARGV[2]; $radius = $ARGV[3]; $AZ1 = $ARGV[4]; $AZ2 = $ARGV[5]; $year = 2011; $radar = "EWR"; $work = "/work/radar/radar_mkCAPPI/volume/Husein_20110221"; $unfold = "/work/radar/radar_mkCAPPI/volume/${radar}_unfold/${year}"; system("ls ${work}/${date}${hhmn}/${file} > list"); open(FP,"list"); close(FP); open(FP,"list"); while(defined($file = <FP>)){ chomp($file); $orgF = "${work}/${file}"; system("mkdir -p ${unfold}"); print "$orgF \n"; ####### FILE NAME CHANGE for minimum time ########### system("cp $orgF test.nc"); $ncid = NetCDF::open("test.nc",WRITE); $varid= NetCDF::varid($ncid,"M_time"); $dimid= NetCDF::dimid($ncid,"Rays"); NetCDF::diminq($ncid,$dimid,$name,$RAY_NUM); @start = (0); @count = ($RAY_NUM); NetCDF::varget($ncid,$varid,\@start,\@count,\@UNIX_TIME); $min = time(); for($i=0;$i<$RAY_NUM;$i++){ if($min > $UNIX_TIME[$i]){ $min = $UNIX_TIME[$i]; } } ($sec,$min,$hh,$dd,$mm,$yy,$weak,$yday,$opt) = localtime($min); $yy+=1900; $mm+=1; $head = substr($file,0,2); $EL = substr($file,15,3); $hh = sprintf("%02d",$hh); $dd = sprintf("%02d",$dd); $min = sprintf("%02d",$min); $sec = sprintf("%02d",$sec); $mm = sprintf("%02d",$mm); $file2 = "${head}${mm}${dd}${hh}${min}${sec}_EL${EL}.nc"; $outF = "${unfold}/$file2"; ############ CUT NOISE ##################### if($opt_Noise eq "ON"){ $varid= NetCDF::varid($ncid,"M_range_to_bin"); $dimid= NetCDF::dimid($ncid,"Bins"); NetCDF::diminq($ncid,$dimid,$name,$BIN_NUM); @start = (0); @count = ($BIN_NUM); NetCDF::varget($ncid,$varid,\@start,\@count,\@RANGE); $varid= NetCDF::varid($ncid,"M_az"); @start = (0); @count = ($RAY_NUM); NetCDF::varget($ncid,$varid,\@start,\@count,\@AZ); $varid= NetCDF::varid($ncid,"M_ref"); @start = (0,0); @count = ($RAY_NUM,$BIN_NUM); NetCDF::varget($ncid,$varid,\@start,\@count,\@REF); NetCDF::attget($ncid,$varid,"scale_factor",\@scale_factor); NetCDF::attget($ncid,$varid,"add_offset",\@add_offset); NetCDF::attget($ncid,$varid,"missing_value",\@missing_value); print "$missing_value[0] \n"; for($j=0;$j<$RAY_NUM;$j++){ for($i=0;$i<$BIN_NUM;$i++){ if($RANGE[$i] < $radius * 1000){ $REF[$j*$BIN_NUM+$i]= $missing_value[0]; } if($AZ[$j] > $AZ1 && $AZ[$j] < $AZ2 ){ $REF[$j*$BIN_NUM+$i]= $missing_value[0]; } } } NetCDF::varput($ncid,$varid,\@start,\@count,\@REF); $varid= NetCDF::varid($ncid,"M_vel"); NetCDF::varget($ncid,$varid,\@start,\@count,\@VEL); NetCDF::attget($ncid,$varid,"scale_factor",\@scale_factor); NetCDF::attget($ncid,$varid,"add_offset",\@add_offset); print "$scale_factor[0] $add_offset[0] \n"; for($j=0;$j<$RAY_NUM;$j++){ for($i=0;$i<$BIN_NUM;$i++){ if($RANGE[$i] < $radius * 1000){ $VEL[$j*$BIN_NUM+$i]= $missing_value[0]; } if($AZ[$j] > $AZ1 && $AZ[$j] < $AZ2 ){ $VEL[$j*$BIN_NUM+$i]= $missing_value[0]; } } } NetCDF::varput($ncid,$varid,\@start,\@count,\@VEL); NetCDF::close($ncid); } if($opt_Noise eq "ON"){ system("rm -f test.nc dummy"); }else{ if($orgF =~ /AZ\d\d\d/){ next; } } ******************************************************** regards, Indra ----- Original Message ----- From: "Parag Kalra" <paragka...@gmail.com> To: ind...@students.itb.ac.id Cc: beginners@perl.org Sent: Thursday, March 17, 2011 1:49:15 AM Subject: Re: MRF-ERROR: Is a directory On Wed, Mar 16, 2011 at 11:44 AM, < ind...@students.itb.ac.id > wrote: how to overcome this error : MRF-ERROR: Is a directory Please post the entire code. ~Parag -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/