Я хочу использовать pandas
для чтения каталогов землетрясений , предоставленных SCEDC. Вероятно, по историческим причинам формат файла довольно неясен, как подробно описано в README
:
col len format name comment
--- --- ------ ---- -------
1 4 a4 year YYYY
6 2 a2 mon MM
9 2 a2 day DD
13 2 a2 hour HH (UTC time:
16 2 a2 min mm 7 hours ahead of Pacific Daylight Time
19 5 f5.2 sec SS.ss 8 hours ahead of Pacific Standard Time)
25 3 i3 lat degrees
29 5 f5.2 lat minutes
34 4 i4 lon degrees
39 5 f5.2 lon minutes
45 1 a1 quality location quality
'A' +- 1 km horizontal distance
+- 2 km depth
'B' +- 2 km horizontal distance
+- 5 km depth
'C' +- 5 km horizontal distance
no depth restriction
'D' >+- 5 km horizontal distance
'Z' no quality listed in database
47 3 f3.1 magnitude
54 6 f6.2 depth kilometers
60 3 i3 nph number of picked phases
67 5 f5.2 rms root mean square of travel times
73 8 i8 eventid event ID
, что составляет:
#YYY MM DD HH mm SS.ss LATITUDE LONGITUDE Q MAG DEPTH NPH RMS EVID
2008 01 01 02 37 08.85 33 35.95-116 43.56 A 0.7 13.16 41 0.16 10297549
2008 01 01 05 12 06.46 33 37.12-116 39.90 A 0.8 13.03 48 0.23 10297553
2008 01 02 18 31 42.73 34 50.89-118 45.92 C 1.1 -1.28 11 0.28 10297805
Хотя я не противв формате с разделителями пробелами все становится неприятно в столбцах LATITUDE
и LONGITUDE
: каждый компонент координат задан в формате [degrees] [minutes]
(например, 33 35.95
и -116 43.56
для первого землетрясения), но места нетмежду широтой, минутами и градусами долготы (33 35.95-116 43.56
), что затрудняет правильное разбиение линии.
Есть ли способ обеспечить этот неясный (a4 a2 f5.2 i3
и т. д.) формат для pandas.read_csv
, чтобыуказать, как разбивать и интерпретировать каждую строку в каталоге?