1 of 60

Embracing

Open Source

for NASA's

Earth Science

Data Systems

Katie Baynes, Dan Pilone, Ryan Boller, David Meyer, NASA Goddard Space Flight Center, Greenbelt, MD

Kevin Murphy, NASA HQ, Washington, DC

2 of 60

First of all, thanks for

having me. I am so excited to be here!

Look guys! I am on stage!

3 of 60

First, an EOSDIS*

Overview

(so where do you work at NASA?)

*Earth Observing System Data and Information System (i say “ee-oh-ess-diss”)

4 of 60

Putting EOSDIS in Context

EOSDIS

Applications

Capture and Clean

Education

Research

*Subset, reformat, reproject

Transform*

Distribute

Archive

Process

5 of 60

SIPS

DAAC

Distributed Active Archive Centers (DAACs), archive and distribute standard data products produced by Science Investigator-led Processing Systems (SIPS)

ASF DAACSAR Products, Sea Ice, Polar Processes

PO.DAACOcean Circulation�Air-Sea Interactions

NSIDC DAACCryosphere, Polar Processes

LPDAACLand Processes and Features

GHRCHydrological Cycle and Severe Weather

ASDCRadiation Budget, Clouds, Aerosols, Tropo Composition

LAADS/MODAPSAtmosphere

OB.DAAC Ocean Biology and Biogeochemistry

SEDACHuman Interactions in Global Change

CDDISCrustal Dynamics Solid Earth

NCAR, U. of Co.

MOPITT

JPLMLS, TES, SNPP Sounder

U. of Wisc.

SNPP Atmosphere

GHRC

AMSR-U, LIS

GSFC

SNPP, MODIS, OMI, OBPG

6 of 60

OPEN SOURCE

OPEN SOURCE

OPEN SOURCE

OPEN SOURCE

6

7 of 60

Data Centric End Users

https://search.earthdata.nasa.gov

7

8 of 60

Data Centric End Users

https://search.earthdata.nasa.gov

Imagery Centric End Users

https://worldview.earthdata.nasa.gov

8

9 of 60

Data Centric End Users

https://search.earthdata.nasa.gov

Imagery Centric End Users

https://worldview.earthdata.nasa.gov

Code Centric End Users

https://cmr.earthdata.nasa.gov/search

9

10 of 60

11 of 60

And we are poised for some really big missions in the early 2020s*, so we’ve got exciting things on the horizon!

* NISAR and SWOT are going to increase EOSDIS daily total ingest from about 6 TB/day to over 110 TB/day

12 of 60

Second, a Quick How To for

Open Sourcing at NASA

(ok, how does this work?)

13 of 60

Enhanced reuse of custom-developed code across the Federal Government can have significant benefits for American taxpayers, including decreasing duplicative costs for the same code and reducing Federal vendor lock-in.5�

This policy also establishes a pilot program that requires agencies, when commissioning new custom software, to release at least 20 percent of new custom-developed code as Open Source Software (OSS) for three years, and collect additional data concerning new custom software to inform metrics to gauge the performance of this pilot.6

14 of 60

I am not sure how many “enlightenment Buddhas” NASA gets. But I think we are doing this for the right reasons.

Free open data for all, easy to find, easy to use, easy to give back.

15 of 60

Here is the high-level process

16 of 60

N.B. This process ensures we are inclusive in our practices and abide by federal law

17 of 60

NASA’s Open Sourcing Process in More Detail

(a brief sub-presentation)

17

18 of 60

NASA releases tons of software!

18

19 of 60

What Forms Will I Need?

New Technology Report - NF1679 (online or via doc template)

(You will need the assigned NTR number (e.g. “GSC-17610”) for subsequent forms)

Export Control Form

Global Concerns Statement

508 Compliance Statement

GSFC Software Developer Form �(aka Software Release Request Authorization or SRRA)

Open Source Questionnaire

https://wiki.earthdata.nasa.gov/display/ESDSWG/Software+Release+Process+-+GSFC+Specific

19

20 of 60

Things to Be Prepared to Gather

List of prior publications related to software (conferences, etc)

Software Classification http://nodis3.gsfc.nasa.gov/displayDir.cfm?Internal_ID=N_PR_7150_002B_&page_name=AppendixD

Distributed Dependencies (a bit more on that later)

508 Compliance Information (especially for Web Interfaces)

Contractors must be prepared to release copyright claims

(more information available at https://software.nasa.gov/ )

20

21 of 60

21

22 of 60

Relevant NPRs

22

23 of 60

Licensing

23

24 of 60

With Regards to Licensing

You will almost certainly need to provide a list of distributed dependencies.

https://en.wikipedia.org/wiki/Viral_license

Any GPL’d or “viral-licensed” software (or in distributed dependencies) will prevent the Office of Patent Counsel (OPC) from being able to release your work.

24

25 of 60

With Regards to Licensing

Releases are done under NASA Open Source Agreement (NOSA)

Apache 2.0 on a case-by-case basis*

25

26 of 60

With Regards to Licensing

26

NASA Open Source Agreement (#NASA)

The NASA Open Source Agreement, version 1.3, is not a free software license because it includes a provision requiring changes to be your “original creation”. Free software development depends on combining code from third parties, and the NASA license doesn't permit this.

We urge you not to use this license. In addition, if you are a United States citizen, please write to NASA and call for the use of a truly free software license.

27 of 60

With Regards to Licensing

We are seeking the Apache 2.0 licenses based on the current statement from the gnu.org regarding its advice for adoption, explained below.

We feel that this would hinder contributors and give pause to anyone considering augmenting and extending our code with other existing code bases (e.g. ‘mash-ups’)

https://www.gnu.org/licenses/license-list.html#NASA

27

28 of 60

1022

number of projects released at software.nasa.gov

28

29 of 60

(End Sub-Presentation)

29

30 of 60

Recent Open Source

Efforts

(only talking about EOSDIS, actively “working” repos)

31 of 60

Some of our more active code bases....

🐙 - more on these later

OnEarth

Worldview🐙

Earthdata Search

Common Metadata Repository

Metadata Management Tool

Cumulus🐙

Approved for open source, not public yet

pyCMR

32 of 60

This is great!

Can’t wait to really start giving back!

33 of 60

Looking at Worldview:

How can we help?

34 of 60

University Students Working on NASA FOSS

University of Pennsylvania held a FOSS class in Fall of 2016.

A pair of students decided to tackle working on Worldview to get their feet wet in contributing.

The blogged about it!

35 of 60

University Students Working on NASA FOSS Great Idea!

36 of 60

Off to a good, but rocky start!

37 of 60

Oh No!

38 of 60

We’ve made great strides since then!

Project Roadmap

https://github.com/nasa-gibs/worldview/wiki/Worldview-Roadmap

Specific README Sections on Installation and Contribution

More transparent testing:

https://travis-ci.org/nasa-gibs/worldview

More transparent issue tracking:

https://waffle.io/nasa-gibs/worldview

Talk to Ryan Boller for more info!

39 of 60

What else could go wrong?

40 of 60

  • Sometimes people fork projects and never attempt to remerge
  • Sometimes code history gets deleted
  • Sometimes people leave projects without identifying successors
  • Sometimes the direction of the project can be unclear
  • Sometimes code just gets thrown over the wall

41 of 60

NASA is full of process and procedure.

How can we improve upon this one?

42 of 60

Starting with a clear plan.

  1. We want to use �and reuse �and reuse our software.
  2. We have a willing group of volunteers
  3. We have vision of how we want to evolve.
  4. We have an opportunity to improve on “Execution” and “Releasing” in the open.

43 of 60

Embracing

Open Source

(another case study in which we are starting on the ground floor)

44 of 60

Prototyping DAACs in the Cloud

45 of 60

What is Cumulus?

Lightweight cloud-native framework for data ingest, archive, distribution and management

Goals

  • Provide core DAAC functionality in a configurable manner
  • Enable DAACs to help each other with re-usable, compatible containers (e.g. widely applicable GIS components or sub-setters)
  • Enable DAAC-specific customizations

46 of 60

46

47 of 60

47

48 of 60

48

49 of 60

49

50 of 60

We have long been a system of stovepipes and “not invented here” types. And that is changing as we evolve

51 of 60

We need to streamline, and create unified, interoperable system that can grow with us. Something we can claim group ownership of.

52 of 60

So ... how do we do this “right”

53 of 60

Drafting a contribution guide

  1. Provide working definitions of the high-level components of the Cumulus system, including specifying which of those components are governed by this document.
  2. Establish roles and responsibilities for contributions to Cumulus NASA’s EOSDIS
  3. Identify key communication flows, as well as information on documentation, testing and deployment paradigms
  4. Outline high-level process expectations for Cumulus contributions and provide example process flows for these contributions

54 of 60

Mimic the Apache Way, but for a simpler use case and narrower audience

55 of 60

Establishing Project Roles and Responsibilities

Project Management Board

Project Leadership Team

Technical Leadership Team

Committers

Contributors

As we scale (up or down) we can adjust/combine/tailor these roles.

We can adapt to other projects/systems.

56 of 60

Form a Working Group!

give them homework

set a release timeline

57 of 60

Understand your Obligations and Limitations

  • Schedule regular meetings with the NASA Office of Patent Counsel
    • Do we need contributor licenses agreements?
    • Can we use docker hub?
    • What system evolutions require new a release process?
    • How do we keep NASA informed of how we are proceeding?
    • How can we help in guiding NASA policy at large?

58 of 60

denouement

denouement

Denouement

(so, what’s next?)

59 of 60

We are abiding by these principles in Cumulus now.

By October 2017 (like, tomorrow in government time),

we will be rolling out this policy and making it “official”.

There is still work to do. We are just starting this journey.

https://pixabay.com/en/road-asphalt-space-sky-clouds-220058/ (licensed CC0)

60 of 60