home *** CD-ROM | disk | FTP | other *** search
/ Internet 1996 World Exposition / park.org.s3.amazonaws.com.7z / park.org.s3.amazonaws.com / cgi-bin / Japan / Theme / bearth / bin / mkevents < prev    next >
Text File  |  2017-09-21  |  4KB  |  120 lines

  1. #!/usr/local/bin/perl
  2. #
  3. # mkevents
  4. # - make events file for Breathing Earth
  5. # usage: mkevents rawdatafile
  6. # (file name of 'rawdatafile' is yyyymmdd; full path name is available)
  7. # created by haruki@st.rim.or.jp 1996/11/02
  8.  
  9. require '/stage/htdocs/cgi-bin/Japan/Theme/bearth/bin/bearth_init.pl';
  10. $rawdata=shift(@ARGV);
  11. $rawfile="$RawdataDir/$rawdata";
  12.  
  13. #
  14. # ░·┐⌠Ñ┴ѺÑ├Ñ»
  15. #
  16. if ($rawfile eq "") {
  17.     print "argument mismatch\n";
  18.     exit;
  19. }
  20.  
  21. $amEventsTmp="$EventsDir/$rawdata-0.tmp";
  22. $pmEventsTmp="$EventsDir/$rawdata-1.tmp";
  23. $amEventsFile="$EventsDir/$rawdata-0.evt";
  24. $pmEventsFile="$EventsDir/$rawdata-1.evt";
  25.  
  26. $data=0;
  27.  
  28. open(FILE, $rawfile);
  29. open(AMTMP, "> $amEventsTmp");    # ╕ß┴░ñ╬ÑñÑ┘Ñ≤Ñ╚ñ≥╜±ñ¡╜╨ñ╣Ñ╒ÑíÑñÑδ
  30. open(PMTMP, "> $pmEventsTmp");    # ╕ß╕σñ╬ÑñÑ┘Ñ≤Ñ╚ñ≥╜±ñ¡╜╨ñ╣Ñ╒ÑíÑñÑδ
  31. while (<FILE>) {
  32.     if ($data == 1) {
  33.         # ╣α╠▄'Depth'ñ¼╢⌡╟≥ñ╬╛∞╣τñ¼ñóñδñ╬ñ╟├▒╜πñ╦╢⌡╟≥ñ≥Ñ╗Ñ╤Ñ∞í╝Ñ┐ñ╦
  34.         # ñ╟ñ¡ñ╩ñññ╬ñ╟║┘ñ½ñ»ñ∩ñ▒ñ╞╣α╠▄ñ≥╝ΦñΩ╜╨ñ╣
  35.  
  36.         # ╣α╠▄'mb' or 'ML' ñ╟║╕┬ªñ╚▒ª┬ªñ╦╩¼ñ▒ñδ
  37.         ($tableleft, $tableright) = split('mb|ML', $_, 2);
  38.  
  39.         # ║╕┬ªñ╬╣α╠▄ñ½ñΘ Date, Time, Lat, Lon ñ≥╝ΦñΩ╜╨ñ╣
  40.         ($type, $date, $time, $lat, $lon, $nph, $depth) = split(' ', $tableleft, 7);
  41.        
  42.         # Dateñ╬╣α╠▄ñ╦┐⌠╗·ñ¼╞■ñ├ñ╞ñññ╩ññ╣╘ñ╧╠╡╗δñ╣ñδ
  43.         # Region ñ╬╩╕╗·╬≤ñ¼─╣ñññ╚ú▓╣╘ñ╦ñ∩ñ┐ñδÑ╟í╝Ñ┐ñ╦ñ╩ñ├ñ╞ñññδñ┐ñß
  44.         if ($date =~ /\d{4}\/\d{2}\/\d{2}/) {
  45.             # Dateñ¼╗╪─Ωñ╡ñ∞ñ┐╞ⁿ╔╒ñ╬╛∞╣τñ└ñ▒Ñ╟í╝Ñ┐ñ≥╝ΦñΩ╜╨ñ╣
  46.             $data_date = $date;
  47.             $data_date =~ s/\///g;    # Dateñ≥yyyymmddÑ╒Ñ⌐í╝Ñ▐Ñ├Ñ╚ñ╦ñ╣ñδ
  48.             if ($data_date eq $rawdata) {
  49.             
  50.                 # Lat, Lon ñ╧├═ñ╚íó╞ε╦╠íª└╛┼∞ñ╬╡¡╣µñ╚ñ≥╩¼ñ▒ñδ
  51.                 ($latval, $latdir) = $lat =~ /(\d+\.\d+|\d+)(\w+)/;
  52.                 ($lonval, $londir) = $lon =~ /(\d+\.\d+|\d+)(\w+)/;
  53.  
  54.                 # ▒ª┬ªñ╬╣α╠▄ñ½ñΘ Mag, Region ñ≥╝ΦñΩ╜╨ñ╣
  55.                 ($mag, $region) = split(' ', $tableright, 2);
  56.  
  57.                 # Time ñ½ñΘ╗■íó╩¼íó╔├ñ≥╝ΦñΩ╜╨ñ╣
  58.                 ($hour, $min, $sec) = split(':', $time, 3);
  59.                 if ($hour < 12) {    # ╕ß┴░ñ╬ÑñÑ┘Ñ≤Ñ╚í╩yyyymmdd-0.evt Ñ╒ÑíÑñÑδñ╪í╦
  60.                     $latval = &to_plus_minus($latval, $latdir, "lat");
  61.                     $lonval = &to_plus_minus($lonval, $londir, "lon");
  62.                     print AMTMP "$latval\t$lonval\t$mag\t($date $time)\n";
  63.                 } else {              # ╕ß╕σñ╬ÑñÑ┘Ñ≤Ñ╚í╩yyyymmdd-1.evt Ñ╒ÑíÑñÑδñ╪í╦
  64.                     $latval = &to_plus_minus($latval, $latdir, "lat");
  65.                     $lonval = &to_plus_minus($lonval, $londir, "lon");
  66.                     print PMTMP "$latval\t$lonval\t$mag\t($date $time)\n";
  67.                 }
  68.             }
  69.         }
  70.         # end of data
  71.         if (/_________________________________________________________________/) {
  72.             $data=0;
  73.         }
  74.     }
  75.     # Ñ╟í╝Ñ┐ñ╬ñ╚ñ│ñφñ▐ñ╟╞╔ñ▀╚⌠ñ╨ñ╣
  76.     if (/^B       Date       Time     Lat      Lon Nph Depth     Mag  Region/) {
  77.         $data=1;
  78.     }
  79. }
  80. close(FILE);
  81. close(AMTMP);
  82. close(PMTMP);
  83.  
  84. #
  85. # rawdatañ╧ÑñÑ┘Ñ≤Ñ╚ñ╬┐╖ñ╖ññ╜τñ╩ñ╬ñ╟╡╒╜τñ╦ñ╣ñδ
  86. #
  87. open(AMTMP, "$amEventsTmp");            # ╕ß┴░ñ╬ÑñÑ┘Ñ≤Ñ╚ñ¼╞■ñ├ñ╞ñññδÑ╒ÑíÑñÑδ
  88. open(AMEVENTS, "> $amEventsFile");    # ╕ß┴░ñ╬ÑñÑ┘Ñ≤Ñ╚ñ≥╜±ñ¡╜╨ñ╣Ñ╒ÑíÑñÑδ
  89. print AMEVENTS reverse <AMTMP>;
  90. close(AMTMP);
  91. close(AMEVENTS);
  92.  
  93. open(PMTMP, "$pmEventsTmp");            # ╕ß╕σñ╬ÑñÑ┘Ñ≤Ñ╚ñ¼╞■ñ├ñ╞ñññδÑ╒ÑíÑñÑδ
  94. open(PMEVENTS, "> $pmEventsFile");    # ╕ß╕σñ╬ÑñÑ┘Ñ≤Ñ╚ñ≥╜±ñ¡╜╨ñ╣Ñ╒ÑíÑñÑδ
  95. print PMEVENTS reverse <PMTMP>;
  96. close(PMTMP);
  97. close(PMEVENTS);
  98.  
  99. unlink("$amEventsTmp");
  100. unlink("$pmEventsTmp");
  101.  
  102. # to_plus_minus(░▐┼┘/╖╨┼┘, N/S/E/W, "lat"/"lon")
  103. # ú▒╚╓╠▄ñ╬░·┐⌠ñ╧░▐┼┘or╖╨┼┘ñ╬┐⌠├═
  104. # ú▓╚╓╠▄ñ╬░·┐⌠ñ╧░▐┼┘or╖╨┼┘ñ╬╩²│╤íó░▐┼┘ñ╩ñΘN or Síó╖╨┼┘ñ╩ñΘ E or W
  105. # ú│╚╓╠▄ñ╬░·┐⌠ñ╧░▐┼┘or╖╨┼┘ñ≥╔╜ñ∩ñ╣╩╕╗·╬≤
  106. sub to_plus_minus {
  107.     ($val, $dir, $kind) = @_;
  108.     if ($kind eq "lat") {    # ░▐┼┘
  109.         if ($dir eq 'S') {    #╞ε░▐ñ╧╔Θñ╬├═
  110.             $val = "-$val";
  111.         }                           #╦╠░▐ñ╧└╡ñ╬├═
  112.     } else {
  113.         if ($dir eq 'W') {    #└╛╖╨ñ╧╔Θñ╬├═
  114.             $val = "-$val";
  115.         }                            #┼∞╖╨ñ╧└╡ñ╬├═
  116.     }
  117.     return $val;
  118. }
  119.