Al descargar reemplazar espacios vacíos por NaN
Publicado: 2009-10-21 13:47 @616
Hola amigos del foro, tengo el siguiente script que me descarga datos meteorológicos de altura de la siguiente forma:
Y como pueden ver hay espacios en blanco; eso indica que el aparato no registra datos.
El problema está en que el script que me descarga esto, esos espacios los rellena con ceros, y lo que quiero es que en vez de ceros los rellene con NaN (Not a Number), y necesito que haga eso porque al momento de procesar esos datos vacíos los toma en cuenta, siendo que no hay datos.
Bueno mis amigos, aquí les dejo el script, porque le hecho modificaciones y no consigo lo que necesito.
Muchas gracias de antemano a todos por sus aportes.
Aquí está el script:
Using text Syntax Highlighting
807 115
88 16959 -77.5 335 13 392.2 392.2
86 17108 -77.1 330 16 395.1 395.1
78 17849 -75.3 25 3 410.1 410.1
74 18248 -74.3 130 12 418.3 418.3
71 18562 -73.6 115 26 424.9 424.9
70 18670 -73.3 125 23 427.2 427.2
66 19020 -72.4 130 21 436.4 436.4
63 19296 -71.7 105 15 443.8 443.8
61 19488 -71.2 70 16 448.9 448.9
55 20103 -69.7 70 36 465.9 465.9
50 20670 -68.3 -89.3 4 0.00 80 27 482.1 482.1 482.1
49 20828 -67.1 -88.1 4 0.00 74 32 488.6 488.6 488.6
48 20915 -67.6 -88.6 4 0.00 70 34 489.5 489.5 489.5
45 21249 -69.5 -90.5 3 0.00 57 26 492.7 492.7 492.7
43 21580 -67.5 -89.2 3 0.00 45 18 505.3 505.3 505.3
42 21724 -66.7 -88.6 3 0.00 50 14 510.8 510.9 510.8
40 22021 -64.9 -87.4 3 0.00 95 10 522.5 522.5 522.5
39 22175 -63.9 -86.8 3 0.01 120 15 528.6 528.6 528.6
37 22496 -62.0 -85.5 3 0.01 85 26 541.5 541.6 541.5
35 22783 -60.3 -84.3 3 0.01 106 21 553.3 553.4 553.4
35 22836 -60.5 -84.5 3 0.01 110 20 554.3 554.4 554.3
34 23015 -61.0 -85.0 3 0.01 95 18 557.5 557.6 557.5
32 23391 -62.0 -86.0 3 0.01 95 35 564.4 564.5 564.4
31 23548 -62.5 -86.5 3 0.01 93 32 567.3 567.4 567.3
30 23790 -62.3 -86.3 3 0.01 90 28 574.2 574.3 574.2
29 24001 -59.4 -86.1 2 0.01 85 28 587.8 587.9 587.8
29 24022 -59.1 -86.1 2 0.01 589.2 589.3 589.2
88 16959 -77.5 335 13 392.2 392.2
86 17108 -77.1 330 16 395.1 395.1
78 17849 -75.3 25 3 410.1 410.1
74 18248 -74.3 130 12 418.3 418.3
71 18562 -73.6 115 26 424.9 424.9
70 18670 -73.3 125 23 427.2 427.2
66 19020 -72.4 130 21 436.4 436.4
63 19296 -71.7 105 15 443.8 443.8
61 19488 -71.2 70 16 448.9 448.9
55 20103 -69.7 70 36 465.9 465.9
50 20670 -68.3 -89.3 4 0.00 80 27 482.1 482.1 482.1
49 20828 -67.1 -88.1 4 0.00 74 32 488.6 488.6 488.6
48 20915 -67.6 -88.6 4 0.00 70 34 489.5 489.5 489.5
45 21249 -69.5 -90.5 3 0.00 57 26 492.7 492.7 492.7
43 21580 -67.5 -89.2 3 0.00 45 18 505.3 505.3 505.3
42 21724 -66.7 -88.6 3 0.00 50 14 510.8 510.9 510.8
40 22021 -64.9 -87.4 3 0.00 95 10 522.5 522.5 522.5
39 22175 -63.9 -86.8 3 0.01 120 15 528.6 528.6 528.6
37 22496 -62.0 -85.5 3 0.01 85 26 541.5 541.6 541.5
35 22783 -60.3 -84.3 3 0.01 106 21 553.3 553.4 553.4
35 22836 -60.5 -84.5 3 0.01 110 20 554.3 554.4 554.3
34 23015 -61.0 -85.0 3 0.01 95 18 557.5 557.6 557.5
32 23391 -62.0 -86.0 3 0.01 95 35 564.4 564.5 564.4
31 23548 -62.5 -86.5 3 0.01 93 32 567.3 567.4 567.3
30 23790 -62.3 -86.3 3 0.01 90 28 574.2 574.3 574.2
29 24001 -59.4 -86.1 2 0.01 85 28 587.8 587.9 587.8
29 24022 -59.1 -86.1 2 0.01 589.2 589.3 589.2
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Y como pueden ver hay espacios en blanco; eso indica que el aparato no registra datos.
El problema está en que el script que me descarga esto, esos espacios los rellena con ceros, y lo que quiero es que en vez de ceros los rellene con NaN (Not a Number), y necesito que haga eso porque al momento de procesar esos datos vacíos los toma en cuenta, siendo que no hay datos.
Bueno mis amigos, aquí les dejo el script, porque le hecho modificaciones y no consigo lo que necesito.
Muchas gracias de antemano a todos por sus aportes.
Aquí está el script:
Using perl Syntax Highlighting
- #!/usr/bin/perl
- #use warnings;
- #use strict;
- use LWP::Simple;
- my $URL= 'http://weather.uwyo.edu/cgi-bin/sounding?region=samer&TYPE=TEXT%3ALIST&YEAR=';
- my $url = '&STNM=85442';
- for my $ano ( 2005 ) {
- for my $mes ( "03" ) {
- for my $dia ( "01" .. "31" ) {
- for my $hora ( 12 ) {
- my $fecha = "$ano-$mes-$dia".".dat";
- my $pagina = get("$URL$ano&MONTH=$mes&FROM=$dia$hora&TO=$dia$hora$url");
- if (defined $pagina) {
- if ((my $datos) = $pagina =~ m/^<PRE>(.+?)<\/PRE>/sim) {
- open (FICHERO, ">$fecha");
- for my $linea (split "\n", $datos) {
- next if $linea !~ /^\s*\d/; # Nos quedamos solo con los datos de la tabla
- my $pres = substr $linea, 0, 7;
- my $hght = substr $linea, 8, 14;
- my $temp = substr $linea, 15, 6;
- my $dwpt = substr $linea, 22, 6;
- my $relh = substr $linea, 29, 6;
- my $mixr = substr $linea, 36, 6;
- my $drct = substr $linea, 43, 6;
- my $sknt = substr $linea, 50, 6;
- my $thta = substr $linea, 57, 6;
- my $thte = substr $linea, 64, 6;
- my $thtv = substr $linea, 71, 6;
- printf FICHERO "%6.0f %6.0f %6.1f %6.1f %6.0f %6.2f %6.0f %6.0f %6.1f %6.1f %6.1f\n", $pres, $hght, $temp, $dwpt, $relh, $mixr, $drct, $sknt, $thta, $thte, $thtv;
- }
- close (FICHERO);
- }}}}}}
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4