segunda-feira, 14 de dezembro de 2009

Problema 9.6

Para este problema só temos que definir qual é a informação relevante. Se queremos fazer o agrupamento por posição, temos que ir ao ficheiro de dados obter a latitude e a longitude da ocorrência do terramoto.
O ficheiro tem uma organização como se ilustra:


2.8 2006/10/19 02:02:10 62.391 -149.751 15.0 CENTRAL ALASKA

2.5 2006/10/19 00:31:15 20.119 -156.213 1.5 MAUI REGION, HAWAII

5.0 2006/10/18 21:15:51 4.823 -82.592 37.3 SOUTH OF PANAMA

2.6 2006/10/18 21:12:25 59.934 -147.904 30.0 GULF OF ALASKA

3.4 2006/10/18 20:59:21 36.540 -89.640 7.7 SOUTHEASTERN MISSOURI

2.7 2006/10/18 20:11:22 61.023 -151.418 60.0 SOUTHERN ALASKA


A latitude é o quarto elemento e a longitude o quinto (não se esqueça que as sequências em Python começam em zero). Daí o código:
01.def cria_dicio_dados_terramoto(ficheiro):
02.    """
03.    Extrai os dados do ficheiro e constrói o dicionário.
04.    """
05.    f_in = open(ficheiro,'r')
06.    dicio_dados = dict()
07.     
08.    chave = 0
09.    linha = f_in.readline()
10.    while linha != '': # EOF?
11.        chave = chave + 1
12.        latitude = float(linha[:-1].split()[3])
13.        longitude = float(linha[:-1].split()[4])
14.        dicio_dados[chave] = (longitude,latitude)
15.        linha = f_in.readline()
16.    f_in.close()
17.    return dicio_dados

É semelhante ao anterior dado para as notas, dispensado por isso mais comentários.

Sem comentários:

Enviar um comentário