def _mag_ness_fromascii(probe, year, doy, try_download=True):
"""
Read in a single day of 6 second magnetic field data.
Data is read from orignal ascii files, and saved to a hdf file for faster
access after the first read.
Parameters
----------
probe : int, string
Helios probe to import data from. Must be 1 or 2.
year : int
Year
doy : int
Day of year
Returns
-------
data : DataFrame
6 second magnetic field data set
"""
probe = _check_probe(probe)
local_dir = _ness_localdir(probe, year)
remote_url = ('ftp://spdf.sci.gsfc.nasa.gov/pub/data/helios/helios' +
probe + '/mag/6sec_ness/' + str(year) + '/')
fname = _ness_fname(probe, year, doy) + '.asc'
f = helper.load(fname, local_dir, remote_url, try_download=try_download)
# Read in data
headings = ['probe', 'year', 'doy', 'hour', 'minute', 'second', 'naverage',
'Bx', 'By', 'Bz', '|B|', 'sigma_Bx', 'sigma_By', 'sigma_Bz']
colspecs = [(1, 2), (2, 4), (4, 7), (7, 9), (9, 11), (11, 13), (13, 15),
(15, 22), (22, 29), (29, 36), (36, 42), (42, 48), (48, 54),
(54, 60)]
data = pd.read_fwf(f, names=headings, header=None,
colspecs=colspecs)
# Process data
data['year'] += 1900
# Convert date info to datetime
data['Time'] = pd.to_datetime(data['year'], format='%Y') + \
pd.to_timedelta(data['doy'] - 1, unit='d') + \
pd.to_timedelta(data['hour'], unit='h') + \
pd.to_timedelta(data['minute'], unit='m') + \
pd.to_timedelta(data['second'], unit='s')
data = data.drop(['year', 'doy', 'hour', 'minute', 'second'], axis=1)
data = data.set_index('Time', drop=False)
# Save data to a hdf store
if use_hdf:
_save_hdf(data, local_dir, _ness_fname(probe, year, doy))
return(data)
评论列表
文章目录