Skip to content
@suncet

SunCET (Sun Coronal Ejection Tracker) NASA Mission

Watching explosions on the sun and filling a crucial gap in the Heliophysics System Observatory

SunCET Code Standards

Below are the standards that the team is aspiring to maintain. The principle underlying all of it is: ease. We want to maximize ease of reading the code, contributing to it, and understanding/accessing the data products.

  1. Written in python 3, following PEP8
  2. Missing/bad data flag is NaN. Not 0. Not -1. Certainly not a combination of different things. Consistent across all data levels.
  3. Clean Code practices will be followed as much as possible.
    • Classes should usually be nouns, functions usually verbs
    • Variable names are verbose but concise to their scope
    • Functions should only be a few lines long each (e.g., roughly < 10)
    • The level of abstraction of every line of code should correspond to its neighboring lines of code
    • When there’s no better way to do something so you have to loop -- make the loop as few lines as possible so it’s easy to follow (use the related-level-of-abstraction concept from functions above)
    • Code should be written to work, then refactored for clarity, to reduce duplication (abstract that stuff away to a function callable from anywhere in the class, or step up to a higher class if it’s reusable beyond just this class)
    • Functions should have very few inputs and only one output -- exceptions allowed but both should be minimized. A function does one thing
  4. Tests should be implemented and include a codecov metric
  5. We’ll implement continuous integration on GitHub -- probably via TravisCI
  6. If packages already exist to do a thing well, use them (e.g., sunpy, astropy, numpy, pandas, etc)
    • We will build with sunpy integration, in particular, in mind from the start.
    • astropy units will be used everywhere it adds value.
  7. Create yaml environment files that include versions on all of the dependencies
  8. Particular effort should be made for documentation of tools likely to be used by the community (e.g., level 1 to 2 processing for turning images into CME kinematic profiles)
  9. Always keep in mind that this mission is a useful part of the HSO, so all of our products, code, coordinate systems, documentation, etc should make it highly compatible with other datasets
  10. Data products will be versioned to correspond to the code found in the repositories herein

Popular repositories Loading

  1. suncet_instrument_simulator suncet_instrument_simulator Public

    Generate realistic synthetic observational data

    Jupyter Notebook

  2. .github .github Public

  3. suncet_processing_pipeline suncet_processing_pipeline Public

    Data processing pipeline for the SunCET mission

    Python 1

  4. suncet_plotting suncet_plotting Public

    Routines for making a variety of plots and movies

    Jupyter Notebook

  5. suncet_convenience suncet_convenience Public

    Variety of convenience functions

  6. example_repo example_repo Public

    Skeleton with working continuous integration

    Python 1

Repositories

Showing 9 of 9 repositories
  • suncet_processing_pipeline Public

    Data processing pipeline for the SunCET mission

    suncet/suncet_processing_pipeline’s past year of commit activity
    Python 0 GPL-3.0 1 0 1 Updated Nov 20, 2024
  • suncet_instrument_simulator Public

    Generate realistic synthetic observational data

    suncet/suncet_instrument_simulator’s past year of commit activity
    Jupyter Notebook 0 MIT 0 0 0 Updated Sep 25, 2024
  • suncet_orbit Public

    Tools that deal with orbital simulation and analysis

    suncet/suncet_orbit’s past year of commit activity
    Python 0 GPL-3.0 0 0 0 Updated Jun 20, 2024
  • suncet_analysis_scratch Public

    Basically scratch paper but its code. Don't expect especially well documented things here.

    suncet/suncet_analysis_scratch’s past year of commit activity
    Jupyter Notebook 0 MIT 0 0 0 Updated Jun 3, 2024
  • suncet_convenience Public

    Variety of convenience functions

    suncet/suncet_convenience’s past year of commit activity
    0 MIT 0 0 0 Updated May 31, 2024
  • suncet_web Public

    Tools and code for the frontend web tools for the public and the team to browse the data

    suncet/suncet_web’s past year of commit activity
    Python 0 MIT 0 0 0 Updated May 17, 2024
  • suncet_plotting Public

    Routines for making a variety of plots and movies

    suncet/suncet_plotting’s past year of commit activity
    Jupyter Notebook 0 MIT 0 0 0 Updated Feb 20, 2024
  • .github Public
    suncet/.github’s past year of commit activity
    0 MIT 0 0 0 Updated May 5, 2023
  • example_repo Public

    Skeleton with working continuous integration

    suncet/example_repo’s past year of commit activity
    Python 0 MIT 1 0 0 Updated Apr 3, 2023

Top languages

Loading…

Most used topics

Loading…