Giter Site home page Giter Site logo

leo-rain / hfr_cs_processing Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rowg/hfr_cs_processing

0.0 1.0 0.0 452 KB

Tools for processing cross spectra from oceanographic HF radar

License: GNU General Public License v3.0

MATLAB 97.02% Mathematica 0.41% M 2.56%

hfr_cs_processing's Introduction

HFR CS PROCESSING TOOLBOX FOR MATLAB

v1.0

DOI

Tools for processing oceanographic HF radar cross spectra with direction finding methods.

  • Provides research quality software for processing HFR data following the methods of Lipe et al. (2006).
  • Employs a home made ship removal algorithm that follows what is known about how it's really done.
  • Generalizes the cross spectra data structure for arbitrary arrays.
  • Allows the use of the imageFOL toolbox by Anthony Kirincich (https://github.com/akirincich/imageFOLs).
  • Includes several DF methods used in Emery (2018), and an estimate of MUSIC error from Stoica and Nehorai (1989) used in Emery and Washburn (2018).
  • Uses my version of CODAR's method for single vs dual determination. This part is a work in progress for other arrays.

HOW TO USE IT

  • download it and add the unzipped directory to your MATLAB path
  • start with run_cs_processing.m

TO DO

  • I need to add a demo/test, e.g. using Anthony's data for validation, but also could build some edge case tests using simiulations (eg 0-360 transition, etc)
  • Arbitrary arrays need a detection method (that is, single bearing vs dual vs ... etc).

ACKNOWLEDGMENT

The release is self contained but includes code from the following people and or toolboxes. HFRProgs [1] by David Kaplan set the standard, and data structures here follow the same basic formatting. I've include a few mfiles from HFRprogs as dependencies. As mentioned above, this toolbox can use imageFOL by Anthony Kirincich [2]. Finally, the release includes code obtained from CODAR Ocean Sensors for reading cross spectra files.

[1] https://github.com/rowg/hfrprogs
[2] https://github.com/akirincich/imageFOLs

REFERENCES

Lipa, B., B. Nyden, D. S. Ullman, and E. Terrill, (2006). SeaSonde radial
  velocities: Derivation and internal consistency.
  IEEE Journal of Oceanic Engineering, 31 (4) 850?861.
Stoica, P., & Nehorai, A. (1989). MUSIC, maximum likelihood, and
  Cramer-Rao bound. IEEE Transactions on Acoustics, Speech, and Signal
  Processing, 37(5), 720-741.
Emery, B. and Washburn, L. (2018). Uncertainty Estimates for SeaSonde HF
  Radar Ocean Current Observations. Journal of Atmospheric and Oceanic
  Technology, Submitted.
Emery, B. (2018). Evaluation of Alternative Direction of Arrival Methods
  for Oceanographic HF Radars. IEEE Journal of Oceanic Engineering,
  Submitted.

ARCHITECTURE GOALS

  • could follow range processing
  • arbitrary array geometry, fft length, etc
  • arbitrary doa method
  • future use of things like different detectors, MAP algorithm, ...
  • tests using Anthony's data for validation, but also could build some edge case tests using simiulations (eg 0-360 transition, etc)

NOTES

  • .m files use functions as blocks of code - code folding (cmd =) makes it easy to move among these.
  • Data structures contain variables of similar origin following the HFRProgs convention, rows = locations, cols = time
  • Data structures are initialized with appropriately named function (e.g. doa_struct.m) to enable standardization

CODING PRINCIPLES

  • Minimize repetition (dont repeat yourself)
  • Make code re-usable and recyclable. Make general functions.
  • Code should be pretty and readable sentences and paragraphs, aid the reader when possible
  • balance between future usages (flexibility) and getting the current job done (purpose built)
  • Good design is simple
  • Write computer programs to make them easy for people to read.
  • Have a clear division between code that is custom for a particular application, and the general/easily repurposed code

hfr_cs_processing's People

Contributors

brianemery avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.