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:

def cria_dicio_dados_terramoto(ficheiro):
"""
Extrai os dados do ficheiro e constrói o dicionário.
"""
f_in = open(ficheiro,'r')
dicio_dados = dict()

chave = 0
linha = f_in.readline()
while linha != '': # EOF?
chave = chave + 1
latitude = float(linha[:-1].split()[3])
longitude = float(linha[:-1].split()[4])
dicio_dados[chave] = (longitude,latitude)
linha = f_in.readline()
f_in.close()
return dicio_dados

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

Sem comentários:

Enviar um comentário