Jump to content

How do I turn this textfile into a single line?


evert

Recommended Posts

Hi all!

 

I have a file containing:

Amsterdam Airport Schiphol, Netherlands (EHAM) 52-18N 004-46E -2M
Sep 02, 2007 - 04:55 PM EDT / 2007.09.02 2055 UTC
Wind: from the W (260 degrees) at 12 MPH (10 KT):0
Visibility: 3 mile(s):0
Sky conditions: mostly cloudy
Weather: light rain, drizzle
Temperature: 62 F (17 C)
Dew Point: 60 F (16 C)
Relative Humidity: 93%
Pressure (altimeter): 29.88 in. Hg (1012 hPa)
ob: EHAM 022055Z 26010KT 5000 -RADZ FEW006 BKN020 BKN035 17/16 Q1012 TEMPO 4000 BKN012
cycle: 21

 

And I need to turn this into a single line containing:

Humidity:93 FeelsLike:16 Wind:12 DewPoint:16.0 Temp:17.0 Rain:0.00 Pressure:1012

 

This exceeds my PHP skills... Who can help me out?

 

 

Greetings,

  Evert

Link to comment
Share on other sites

Where does "FeelsLike" come from, and how is "Rain" associated to "0.00"?

 

<pre>
<?php
$data = <<<DATA
Amsterdam Airport Schiphol, Netherlands (EHAM) 52-18N 004-46E -2M
Sep 02, 2007 - 04:55 PM EDT / 2007.09.02 2055 UTC
Wind: from the W (260 degrees) at 12 MPH (10 KT):0
Visibility: 3 mile(s):0
Sky conditions: mostly cloudy
Weather: light rain, drizzle
Temperature: 62 F (17 C)
Dew Point: 60 F (16 C)
Relative Humidity: 93%
Pressure (altimeter): 29.88 in. Hg (1012 hPa)
ob: EHAM 022055Z 26010KT 5000 -RADZ FEW006 BKN020 BKN035 17/16 Q1012 TEMPO 4000 BKN012
cycle: 21
DATA;

$pieces = array(
	'Wind' => '^Wind.+?(\d+) MPH',
	'Humidity' => '^Relative Humidity: (\d+)%',
	'Dew Point' => '^Dew Point.+?\((\d+)',
	'Temperature' => '^Temperature.+?\((\d+)',
	'Pressure' => '^Pressure.+?\((\d+)',
);
foreach ($pieces as $key => $value) {
	preg_match("/$value/sm", $data, $matches);
	$result[$key] = $matches[1];
}
print_r($result);

?>
</pre>

Link to comment
Share on other sites

Oops... Forgot to mention that... The feel-temperature is calculated (here's an example in Javascript):

<!-- Begin
function windChill(form) {
wind=eval(form.wind.value);
temp=eval(form.temp.value);
chill=(0.0817*(3.71*(Math.pow(wind, 0.5))+
5.81-0.25*wind)*(temp-91.4)+91.4);
form.windchill.value = chill;
}
//  End -->

(this is the formula for fahrenheit & miles/hour)

 

And about the precipitation: It turns out the US METAR files look a bit different:

Austin, Austin-Bergstrom International Airport, TX, United States (KAUS) 30-11-40N 097-40-12W 172M
Sep 04, 2007 - 12:53 PM EDT / 2007.09.04 1653 UTC
Wind: from the E (090 degrees) at 3 MPH (3 KT):0
Visibility: 9 mile(s):0
Sky conditions: overcast
Weather: light rain
Precipitation last hour: 0.01 inches
Temperature: 75.9 F (24.4 C)
Dew Point: 72.0 F (22.2 C)
Relative Humidity: 87%
Pressure (altimeter): 30.04 in. Hg (1017 hPa)
ob: KAUS 041653Z 09003KT 9SM -RA BKN009 OVC150 24/22 A3004 RMK AO2 RAB1555 SLP163 P0001 T02440222
cycle: 17

 

Regards,

  Evert

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.