1 / 35

Riometer data from a Lancaster perspective

Riometer data from a Lancaster perspective. Steve Marple Farideh Honary. Lancaster data sources. http://www.dcs.lancs.ac.uk/iono/data/request.html. Data request flowchart. http://www.dcs.lancs.ac.uk/iono/cgi-bin/riometers. Multi-instrument Analysis (MIA) - Overview.

savea
Télécharger la présentation

Riometer data from a Lancaster perspective

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Riometer data from a Lancaster perspective Steve Marple Farideh Honary

  2. Lancaster data sources

  3. http://www.dcs.lancs.ac.uk/iono/data/request.html

  4. Data request flowchart

  5. http://www.dcs.lancs.ac.uk/iono/cgi-bin/riometers

  6. Multi-instrument Analysis (MIA) - Overview Designed to process different STP data types: • Riometer processing and visualisation tools • Magnetometer processing and visualisation tools • All-sky camera processing and visualisation tools

  7. Advantages of a Common Approach By using a common approach tools common to different data formats can be shared: • Image plots • Keograms • Line plots • Movies • Map overlays • Shape / movement analysis

  8. Riometer data types Data types: Beam data: • Raw power (not linearised, ADC units) • Power (linearised, possibly in dBm) • Quiet day curve (QDC) [raw and linearised versions] • Absorption • Images of the above (image data)

  9. Absorption data • Absorption data can be loaded in two ways: • Create on-the-fly: Absorption = (QDC – received power) / obliquity factor • Load directly from disk Creating when requested is more complex but much more flexible. The quality of the QDC can be checked, alternative QDCs can be substituted and different obliquity factors can be used (eg effective obliquity factors)

  10. MIA is Object-oriented • Object-oriented programming uses classes to implement different objects (eg., a riometer). • Classes can have a hierarchy to represent similar types of object • Implemented in Matlab, which supports object-oriented programming

  11. MIA classes • Time/duration classes • Instrument classes • Riometer • Magnetometer etc • Data classes For riometers this includes: • Received power • Quiet day curve • Absorption etc Also: • Filter classes (in C++ terminology these are implemented as functors) • GUI classes (widgets for time boxes, beam boxes etc. are implemented as classes)

  12. Instrument classes Class name Associated with each class are functions (not shown). Classes can provide additional functions, or override functions defined by their parent classes. Metadata stored by class Riometer class inherits metadata and functions from its parent class

  13. Data classes

  14. Requirements for successful data sharing To share data with the minimum of effort we need to agree on: • Sufficient metadata • Common file format • How/where to access data • FTP/HTTP locations need to be predictable. • Suggestion: Define locations as strftime format strings (i.e., date/time is the only variable) • Data definitions

  15. Metadata requirements Too many to list here, but includes • Start time of data • End time of data • Resolution of data • Instrument which recorded the data • Units the data is recorded in • Offset / centred timing • … List of metadata used by MIA is available as a separate document

  16. Files formats Various possibilities, including: • CDF • NetCDF • HDF • XML ? Suggestion: Chosen format should be supported by C, Fortran, IDL, Matlab, and Perl

  17. File formats and support

  18. Data definitions • Start / end time • Is end time the start of the last sample or the end of the last sample? • Beam numbers • So many different methods! A system based on scalars is most easily implemented. • Are data samples offset or centred • Doesn't matter if recorded in metadata

  19. Other problems • Absorption is frequency-dependent! We need to get into the habit of specifying absorption at a given frequency! • Identifying riometers • Need a common method • Will probably need to distinguish between different riometers at the same site (even if operations did not overlap operating frequencies may be different) • Internationalisation • To label plots correctly we sometimes need to deal with accented characters (e.g., Kilpisjärvi) • Backward compatibility • If we change file formats / metadata definitions we need to be able to automatically convert any data saved in the old format

  20. How can Lancaster help with data sharing? • MIA can already handle data from most riometers (translating from the native file formats itself) but is easily configured for any others • MIA doesn’t need processed absorption data – users could create QDCs themselves • If datasets are accessible via FTP or HTTP MIA can process remote data as if it resided locally. The data request system can act as a data portal

  21. Summary • The necessary tools to enable data sharing exist • The necessary information to use that data (mostly) exists (e.g., riometer database at Lancaster) • Actually getting the data not always easy!

  22. MIA API example Get some riometer data and find the difference between each sample to locate ‘spike’ events. First define basic parameters st = timestamp([2002 10 30 20 0 0]); et = timestamp([2002 10 30 22 0 0]); res = timespan(10, ‘s’); rio = rio_kil_1; beams = [18 25 32]; % 3 different beams

  23. Then create the absorption object: mia = rio_abs('starttime', st, … 'endtime', et, … 'resolution', res, … 'beams', beams, … 'instrument', rio); Note how we can set only the parameters we need. We could have changed the obliquity method, or used a non-standard QDC, if we had set the appropriate parameters, but the default ones are suitable. The mia object contains all sorts of information (see class diagram). We can extract the information we want by calling functions. To get the absorption values for beam 25 we do this: ri = getparameterindex(mia, 25); % find row index data25 = getdata(mia, ri, ':'); We don't know what row the data for beam 25 is stored in, so we have to ask. We want samples for all times, but since we are calling a function, not subscripting an array we cannot use ":", we have to pass the colon as a string, ':'.

  24. To get the entire data matrix we could just have called: alldata = getdata(mia); Back to the problem of detecting spike events. The difference between succesive samples is easily calculated using Matlab's own diff function. diffdata = diff(data25); I have documented almost all of the MIA functions, so you can use the help command to find out how to use the function.

  25. MIA filters • Want a method to filter data which automatically adjusts to the type of data and resolution. • Any method which uses filters should not have to know any special information to use the filter. (Otherwise as new filters are added all functions which use filters must be updated). • In C++ the method I have used is called a functor. (Matlab does not have the vocabulary to describe these OOP tricks, so when necessary I borrow the terminology from C++.)

  26. MIA filters The technique is described below: • Create a filter object. In a Matlab function it would normally be created with the correct parameters for your use. In a GUI environment there is a graphical configure command to allow users to adjust the parameters. • Pass the configured filter object, and the MIA data object, to the function which needs to filter something. The called function does not have to know anything special to use that filter, all the configuration details are stored inside the filter object. • When the called function needs to perform filtering it make a call to the filter method. Matlab's OOP ensures the filter method which corresponds to that filter class is called. Any information needed (e.g., window size for a sliding mean filter) is stored inside the filter object. • If the window size is stored as a timespanthen the filter method should compute the actual window size by comparing the resolution of the data with the specified window size. • This ensures the filters work independently of the data.

  27. Tools • Line plots • Images • Keograms • Movies • Map overlays • Filters to process data (remove scintillation etc) • Functions for generating and checking QDCs • Antenna modelling • Beam projections • Effective obliquity factors

  28. Time classes Times and durations initially appear to be simple quantities to handle. Month and year boundaries, and leap years quickly escalate the complexity of dealing with times. MIA provides two companion classes: timestamp (for dates/times) and timespan (for durations) Addition of timestamps is not valid, but most other operations are.

More Related