Code Resources Guidelines
Code and code packages associated with NEON fall into three tiers, described below. The index of code resources can be found on the Code Hub page. To submit code for inclusion on the Code Resources page, in any of the three tiers, please send a request via the web form and provide the requested information about the purpose and content of your code.
For code that supportsĀ general-purpose applications in ecology, we welcome scripts or packages that apply the general-purpose methods to NEON data. For example, we wouldn't list the vegan R package as a NEON code resource, but a script that uses the vegan package to work with NEON data would be an excellent Tier 1 submission.
Tier 1: Community Contributed Code
Tier 1 consists of code resources NEON provides links to, but does not host, maintain, or review. Links are simply provided for ease of discoverability by other users. Because code resources in Tier 1 are not subject to code review by NEON, nor maintained by NEON, any questions or concerns should be directed to the authors/maintainers directly.
Criteria for inclusion in Tier 1:
- Hosted publicly, under an open license. The list of licenses accepted can be found on the submission form.
- Open-source code
- Involves processing, visualization, transformation, and/or interpretation of NEON data
- Documented sufficiently for an unfamiliar user to understand
Examples of Tier 1 code:
- Script associated with a publication using NEON data
- Script for working with NEON data, not in package form
- Code used in teaching or training that involves NEON data
- Code used to generate a Shiny app featuring NEON data
Tier 2: NEON Certified Code
Tier 2 code meets all criteria for Tier 1, and in addition has passed a NEON code review covering the criteria described below.
In general, Tier 2 code is maintained by the author, but on a case-by-case basis, if requested by the author(s), NEON will consider taking over code maintenance. Tier 2 also includes several code packages developed and maintained internally at NEON; contributions and enhancements to these packages are evaluated under the same review criteria.
Code developed in the process of working toward a Tier 3 submission can also fall into Tier 2. For example, NEON may someday publish a formal data product of nitrogen mineralization and nitrification rates; for now, the neonNtrans package provides those calculations and is available as a Tier 2 code package.
Criteria evaluated in Tier 2 code review:
- Relevant to the NEON mission
- Packagized - unpackaged scripts will not be accepted
- Passes automated tests, such as R CMD check, without error
- Thoroughly documented in accordance with community standards. For example, for R code, we recommend following Roxygen standards.
- Performs as documented
For examples of Tier 2 code, see the neonUtilities and reaRate packages.
Tier 3: NEON Production Code
Tier 3 code is used to generate NEON data products published on the NEON Data Portal.
Code in Tier 3 must meet all the criteria for Tier 2, plus:
- Thorough error handling
- Logging
- Versioning
- Suitability to the data product in question
- Within NEON scope
- CPU resource tested (RAM, processing time)
- Any other criteria specified by the relevant NEON data product lead
Tier 3 code is subject to modification by NEON staff for incorporation into NEON data pipelines, and Tier 3 code evaluation includes assessment of the budget and resources needed to accomplish this. It is expected that Tier 3 code submissions will be the end result of extensive collaboration with NEON scientists, and of competitive proposals; if you are interested in contributing to NEON data processing code and/or developing algorithms for new NEON data products, contact the appropriate data product lead as early as possible in the process.