coralnet-toolbox 0.0.73__py2.py3-none-any.whl → 0.0.74__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. coralnet_toolbox/Annotations/QtAnnotation.py +28 -69
  2. coralnet_toolbox/Annotations/QtMaskAnnotation.py +408 -0
  3. coralnet_toolbox/Annotations/QtMultiPolygonAnnotation.py +72 -56
  4. coralnet_toolbox/Annotations/QtPatchAnnotation.py +165 -216
  5. coralnet_toolbox/Annotations/QtPolygonAnnotation.py +497 -353
  6. coralnet_toolbox/Annotations/QtRectangleAnnotation.py +126 -116
  7. coralnet_toolbox/CoralNet/QtDownload.py +2 -1
  8. coralnet_toolbox/Explorer/QtExplorer.py +16 -14
  9. coralnet_toolbox/Explorer/QtSettingsWidgets.py +114 -82
  10. coralnet_toolbox/IO/QtExportTagLabAnnotations.py +30 -10
  11. coralnet_toolbox/IO/QtImportTagLabAnnotations.py +21 -15
  12. coralnet_toolbox/IO/QtOpenProject.py +46 -78
  13. coralnet_toolbox/IO/QtSaveProject.py +18 -43
  14. coralnet_toolbox/MachineLearning/ExportDataset/QtBase.py +1 -1
  15. coralnet_toolbox/MachineLearning/ImportDataset/QtBase.py +42 -22
  16. coralnet_toolbox/MachineLearning/VideoInference/QtBase.py +0 -4
  17. coralnet_toolbox/QtEventFilter.py +11 -0
  18. coralnet_toolbox/QtImageWindow.py +117 -68
  19. coralnet_toolbox/QtLabelWindow.py +13 -1
  20. coralnet_toolbox/QtMainWindow.py +5 -27
  21. coralnet_toolbox/QtProgressBar.py +52 -27
  22. coralnet_toolbox/Rasters/RasterTableModel.py +8 -8
  23. coralnet_toolbox/SAM/QtDeployPredictor.py +10 -0
  24. coralnet_toolbox/SeeAnything/QtDeployGenerator.py +779 -161
  25. coralnet_toolbox/SeeAnything/QtDeployPredictor.py +86 -149
  26. coralnet_toolbox/Tools/QtCutSubTool.py +18 -2
  27. coralnet_toolbox/Tools/QtResizeSubTool.py +19 -2
  28. coralnet_toolbox/Tools/QtSAMTool.py +72 -50
  29. coralnet_toolbox/Tools/QtSeeAnythingTool.py +8 -5
  30. coralnet_toolbox/Tools/QtSelectTool.py +27 -3
  31. coralnet_toolbox/Tools/QtSubtractSubTool.py +66 -0
  32. coralnet_toolbox/Tools/__init__.py +2 -0
  33. coralnet_toolbox/__init__.py +1 -1
  34. coralnet_toolbox/utilities.py +137 -47
  35. coralnet_toolbox-0.0.74.dist-info/METADATA +375 -0
  36. {coralnet_toolbox-0.0.73.dist-info → coralnet_toolbox-0.0.74.dist-info}/RECORD +40 -38
  37. coralnet_toolbox-0.0.73.dist-info/METADATA +0 -341
  38. {coralnet_toolbox-0.0.73.dist-info → coralnet_toolbox-0.0.74.dist-info}/WHEEL +0 -0
  39. {coralnet_toolbox-0.0.73.dist-info → coralnet_toolbox-0.0.74.dist-info}/entry_points.txt +0 -0
  40. {coralnet_toolbox-0.0.73.dist-info → coralnet_toolbox-0.0.74.dist-info}/licenses/LICENSE.txt +0 -0
  41. {coralnet_toolbox-0.0.73.dist-info → coralnet_toolbox-0.0.74.dist-info}/top_level.txt +0 -0
@@ -1,341 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: coralnet-toolbox
3
- Version: 0.0.73
4
- Summary: Tools for annotating and developing ML models for benthic imagery
5
- Author-email: Jordan Pierce <jordan.pierce@noaa.gov>
6
- License: MIT License
7
- Project-URL: Homepage, https://github.com/Jordan-Pierce/CoralNet-Toolbox
8
- Keywords: CoralNet-Toolbox
9
- Classifier: Intended Audience :: Developers
10
- Classifier: License :: OSI Approved :: MIT License
11
- Classifier: Natural Language :: English
12
- Classifier: Programming Language :: Python :: 3.10
13
- Requires-Python: <3.11,>=3.10
14
- Description-Content-Type: text/markdown
15
- License-File: LICENSE.txt
16
- Requires-Dist: PyQt5>=5.15.11
17
- Requires-Dist: pyqtdarktheme
18
- Requires-Dist: pyqtgraph
19
- Requires-Dist: ultralytics>=8.3.152
20
- Requires-Dist: lap>=0.5.12
21
- Requires-Dist: open-clip-torch>=2.20.0
22
- Requires-Dist: supervision>=0.24.0
23
- Requires-Dist: scikit-learn
24
- Requires-Dist: umap-learn
25
- Requires-Dist: faiss-cpu
26
- Requires-Dist: pycocotools
27
- Requires-Dist: ujson
28
- Requires-Dist: timm==0.9.2
29
- Requires-Dist: autodistill
30
- Requires-Dist: transformers>=4.5.0
31
- Requires-Dist: x-segment-anything>=0.0.8
32
- Requires-Dist: yolo-tiling>=0.0.19
33
- Requires-Dist: roboflow
34
- Requires-Dist: rasterio
35
- Requires-Dist: requests
36
- Requires-Dist: selenium>=4.15.2
37
- Requires-Dist: beautifulsoup4>=4.12.2
38
- Requires-Dist: webdriver_manager
39
- Requires-Dist: dill
40
- Requires-Dist: seaborn
41
- Provides-Extra: all
42
- Requires-Dist: coralnet-toolbox[extra]; extra == "all"
43
- Dynamic: license-file
44
-
45
- # CoralNet-Toolbox 🪸🧰
46
-
47
- <div align="center">
48
- <p>
49
- <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/CoralNet_Toolbox.png" alt="CoralNet-Toolbox">
50
- </p>
51
- </div>
52
-
53
- <div align="center">
54
-
55
- [![python-version](https://img.shields.io/pypi/pyversions/CoralNet-Toolbox.svg)](https://pypi.org/project/CoralNet-Toolbox)
56
- [![version](https://img.shields.io/pypi/v/CoralNet-Toolbox.svg)](https://pypi.python.org/pypi/CoralNet-Toolbox)
57
- [![pypi-passing](https://github.com/Jordan-Pierce/CoralNet-Toolbox/actions/workflows/pypi.yml/badge.svg)](https://pypi.org/project/CoralNet-Toolbox)
58
- [![windows](https://github.com/Jordan-Pierce/CoralNet-Toolbox/actions/workflows/windows.yml/badge.svg)](https://pypi.org/project/CoralNet-Toolbox)
59
- [![macos](https://github.com/Jordan-Pierce/CoralNet-Toolbox/actions/workflows/macos.yml/badge.svg)](https://pypi.org/project/CoralNet-Toolbox)
60
- [![ubuntu](https://github.com/Jordan-Pierce/CoralNet-Toolbox/actions/workflows/ubuntu.yml/badge.svg)](https://pypi.org/project/CoralNet-Toolbox)
61
- </div>
62
-
63
- <div align="center">
64
- <table>
65
- <tr>
66
- <td align="center" width="33%">
67
- <h3>🔍 Annotation</h3>
68
- <p>Create patches, rectangles, and polygons with AI assistance</p>
69
- </td>
70
- <td align="center" width="33%">
71
- <h3>🧠 AI-Powered</h3>
72
- <p>Leverage SAM, YOLOE, and various foundation models</p>
73
- </td>
74
- <td align="center" width="33%">
75
- <h3>🚀 Complete Workflow</h3>
76
- <p>From data collection to model training and deployment</p>
77
- </td>
78
- </tr>
79
- </table>
80
- </div>
81
-
82
- ## 🚦 Quick Start
83
-
84
- Running the following command will install the `coralnet-toolbox`, which you can then run from the command line:
85
- ```bash
86
- # cmd
87
-
88
- # Install
89
- pip install coralnet-toolbox
90
-
91
- # Run
92
- coralnet-toolbox
93
- ```
94
-
95
- ## 📚 Guides
96
-
97
- For further information and instructions, please see the following guides:
98
- - [Overview](https://jordan-pierce.github.io/CoralNet-Toolbox/overview)
99
- - [Installation](https://jordan-pierce.github.io/CoralNet-Toolbox/installation)
100
- - [Usage](https://jordan-pierce.github.io/CoralNet-Toolbox/usage)
101
- - Community Provided:
102
- - [Patch-based Image Classifier](https://jordan-pierce.github.io/CoralNet-Toolbox/classify)
103
-
104
- <details open>
105
- <summary><h2><b>🎥 Watch the Video Demos</b></h2></summary>
106
- <p align="center">
107
- <a href="https://youtube.com/playlist?list=PLG5z9IbwhS5NQT3B2jrg3hxQgilDeZak9&feature=shared">
108
- <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/toolbox_qt.PNG" alt="Video Title" width="90%">
109
- </a>
110
- </p>
111
- </details>
112
-
113
- ## ⏩ TL;Dr
114
-
115
- The `CoralNet-Toolbox` is an unofficial codebase that can be used to augment processes associated with those on
116
- [CoralNet](https://coralnet.ucsd.edu/).
117
-
118
- It uses✨[`Ultralytics`](https://github.com/ultralytics/ultralytics)🚀 as a base, which is an open-source library for
119
- computer vision and deep learning built in `PyTorch`. For more information on their `AGPL-3.0` license, see
120
- [here](https://github.com/ultralytics/ultralytics/blob/main/LICENSE).
121
-
122
- ### 🚀 Supported Models
123
-
124
- The `toolbox` integrates a variety of state-of-the-art models to help you create rectangle and polygon annotations efficiently. Below is a categorized overview of the supported models and frameworks:
125
-
126
- <div align="center">
127
-
128
- | Category | Models |
129
- |-------------------------|---------------------------------------------------------------------------------------------------------|
130
- | **Trainable** | - 🦾 [YOLOv3](https://docs.ultralytics.com/models/) <br> - 🦈 [YOLOv4](https://docs.ultralytics.com/models/) <br> - 🦅 [YOLOv5](https://docs.ultralytics.com/models/) <br> - 🐬 [YOLOv6](https://docs.ultralytics.com/models/) <br> - 🐢 [YOLOv7](https://docs.ultralytics.com/models/) <br> - 🐙 [YOLOv8](https://docs.ultralytics.com/models/) <br> - 🐠 [YOLOv9](https://docs.ultralytics.com/models/) <br> - 🦑 [YOLOv10](https://docs.ultralytics.com/models/) <br> - 🚀 [YOLO11](https://docs.ultralytics.com/models/) <br> - 🐳 [YOLO12](https://docs.ultralytics.com/models/) |
131
- | **Segment Anything** | - 🪸 [SAM](https://github.com/facebookresearch/segment-anything) <br> - 🌊 [CoralSCOP](https://github.com/zhengziqiang/CoralSCOP) <br> - ⚡ [FastSAM](https://github.com/CASIA-IVA-Lab/FastSAM) <br> - 🔁 [RepViT-SAM](https://github.com/THU-MIG/RepViT) <br> - ✂️ [EdgeSAM](https://github.com/chongzhou96/EdgeSAM) <br> - 📱 [MobileSAM](https://github.com/ChaoningZhang/MobileSAM) |
132
- | **Visual Prompting** | - 👁️ [YOLOE](https://github.com/THU-MIG/yoloe) <br> - 🤖 [AutoDistill](https://github.com/autodistill): <br> &nbsp;&nbsp;&nbsp;• 🦒 Grounding DINO <br> &nbsp;&nbsp;&nbsp;• 🦉 OWLViT <br> &nbsp;&nbsp;&nbsp;• ⚡ OmDetTurbo |
133
-
134
- </div>
135
-
136
- These models enable fast, accurate, and flexible annotation workflows for a wide range of use cases for patch-based image classification, object detection, instance segmentation.
137
-
138
- ## 🛠️ Toolbox Features
139
-
140
- <div align="center">
141
-
142
- | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Patches.gif" alt="Patch Annotation Tool" width="256" height="256"/><br><sub>**Patch Annotation**</sub> | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Rectangles.gif" alt="Rectangle Annotation Tool" width="256" height="256"/><br><sub>**Rectangle Annotation**</sub> | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Polygons.gif" alt="Polygon Annotation Tool" width="256" height="256"/><br><sub>**(Multi) Polygon Annotation**</sub> |
143
- |:--:|:--:|:--:|
144
- | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Classification.gif" alt="Patch-based Image Classification" width="256" height="256"/><br><sub>**Image Classification**</sub> | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Object_Detection.gif" alt="Object Detection" width="256" height="256"/><br><sub>**Object Detection**</sub> | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Instance_Segmentation.gif" alt="Instance Segmentation" width="256" height="256"/><br><sub>**Instance Segmentation**</sub> |
145
- | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Segment_Anything.gif" alt="Segment Anything Model (SAM)" width="256" height="256"/><br><sub>**Segment Anything (SAM)**</sub> | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Classifying_Polygons.gif" alt="Polygon Classification" width="256" height="256"/><br><sub>**Polygon Classification**</sub> | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Work_Areas.gif" alt="Region-based Detection" width="256" height="256"/><br><sub>**Region-based Detection**</sub> |
146
- | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Cut.gif" alt="Cut" width="256" height="256"/><br><sub>**Cut**</sub> | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Combine.gif" alt="Combine" width="256" height="256"/><br><sub>**Combine**</sub> | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Simplify.gif" alt="Simplify" width="256" height="256"/><br><sub>**Simplify**</sub> |
147
- | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/See_Anything.gif" alt="See Anything (YOLOE)" width="256" height="256"/><br><sub>**See Anything (YOLOE)**</sub> | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Classifying_Orthomosaics.gif" alt="Patch-based LAI Classification" width="256" height="256"/><br><sub>**LAI Classification**</sub> | |
148
-
149
- <br>
150
-
151
- | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Analytics.gif" alt="Video Inference" width="450"/><br><sub>**Video Inference**</sub> | <img src="https://raw.githubusercontent.com/Jordan-Pierce/CoralNet-Toolbox/refs/heads/main/figures/tools/Explorer.gif" alt="Explorer" width="450"/><br><sub>**Explorer**</sub> |
152
- |:--:|:--:|
153
-
154
- </div>
155
-
156
- </div>
157
-
158
- Enhance your CoralNet experience with these tools:
159
- - 📥 [Download](https://www.youtube.com/watch?v=Ds9JZATmCmw): Retrieve Source data (images and annotations) from CoralNet
160
- - 🎬 Rasters: Import images, or extract frames directly from video files
161
- - ✏️ Annotate: Create annotations freely
162
- - 👁️ Visualize: See CoralNet and CPCe annotations superimposed on images
163
- - 🔬 Sample: Sample patches using various methods (Uniform, Random, Stratified)
164
- - 🧩 Patches: Create patches (points)
165
- - 🔳 Rectangles: Create rectangles (bounding boxes)
166
- - 🟣 Polygons: Create polygons (instance masks)
167
- - 👨‍👩‍👧‍👦 MultiPolygons: Combine multiple, non-overlapping polygons (i.e, genets)
168
- - ✍️ Edit: Cut and Combine polygons and rectangles
169
- - 🦾 SAM: Use `FastSAM`, `CoralSCOP`, `RepViT-SAM`, `EdgeSAM`, `MobileSAM`, and `SAM` to create polygons
170
- - Uses [`xSAM`](https://github.com/Jordan-Pierce/xSAM)
171
- - 👷‍♂️ Work areas: Perform region-specific detections / segmentations with any model
172
- - 👀 YOLOE (See Anything): Detect similar appearing objects using visual prompts automatically
173
- - 🧪 AutoDistill: Use `AutoDistill` to access the following for creating rectangles and polygons:
174
- - Uses `Grounding DINO`, `OWLViT`, `OmDetTurbo`
175
- - 📻 Tune: Tune hyperparameters to identify ideal training conditions
176
- - 🧠 Train: Build local patch-based classifiers, object detection, and instance segmentation models
177
- - 🧙‍♂️ Deploy: Use trained models for predictions
178
- - 📊 Evaluation: Evaluate model performance
179
- - 🚀 Optimize: Productionize models for faster inferencing
180
- - ⚙️ Batch Inference: Perform predictions on multiple images, automatically
181
- - 🎞️ Video Inference: Perform predictions on a video in real-time, record the output and analytics
182
- - 🔮 [Explorer](https://youtu.be/68eZt5l_7nA): Cluster, view, and re-label annotations using embeddings, mapped from feature-space
183
- - ↔️ I/O: Import and Export annotations from / to CoralNet, Viscore, and TagLab
184
- - Export annotations as [GeoJSONs](https://datatracker.ietf.org/doc/html/rfc7946), segmentation masks
185
- - 📸 YOLO: Import and Export YOLO datasets for machine learning
186
- - 🧱 Tile Dataset: Tile existing Detection / Segmentation datasets
187
- - Uses [`yolo-tiling`](https://github.com/Jordan-Pierce/yolo-tiling)
188
- - 🏗️ Tile Inference: Pre-compute multiple work areas for an entire image
189
-
190
- ### 📝 TODO
191
- - 🤗 Model Zoo: Download `Ultralytics` models from `HuggingFace` for use in `toolbox`
192
- - 🦊 BioCLIP, MobileCLIP (AutoDistill): Automatically classify annotations
193
- - 📦 [Toolshed: Access tools from the old repository](https://github.com/Jordan-Pierce/CoralNet-Toolshed)
194
-
195
- ## 💾 **How to Install**
196
-
197
- ### 🐍 Anaconda
198
-
199
- It's recommended to use `Anaconda` to create an environment for the `toolbox`:
200
- ```bash
201
- # cmd
202
-
203
- # Create and activate an environment
204
- conda create --name coralnet10 python=3.10 -y
205
- conda activate coralnet10
206
- ```
207
-
208
- ### 📦 Install
209
-
210
- Once this has finished, install the `toolbox` using `uv`:
211
-
212
- ```bash
213
- # cmd
214
-
215
- # Install uv first
216
- pip install uv
217
-
218
- # Install with uv
219
- uv pip install coralnet-toolbox
220
- ```
221
-
222
- Although fast, `uv` is still relatively new; if this fails, simply fall back to using `pip`:
223
-
224
- ```bash
225
- # cmd
226
-
227
- # Install
228
- pip install coralnet-toolbox
229
- ```
230
-
231
- ### ⚡ CUDA
232
-
233
- If you have `CUDA`, you should install the versions of `cuda-nvcc` and `cudatoolkit` that you
234
- need, and then install the corresponding versions of `torch` and `torchvision`. Below is an example of how that can be
235
- done using `CUDA` version 11.8:
236
- ```bash
237
- # cmd
238
-
239
- # Example for CUDA 11.8
240
- conda install nvidia/label/cuda-11.8.0::cuda-nvcc -y
241
- conda install nvidia/label/cuda-11.8.0::cuda-toolkit -y
242
-
243
- # Example for torch w/ CUDA 11.8
244
- uv pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118 --upgrade
245
- ```
246
-
247
- If `CUDA` is installed on your computer, and `torch` was built with it properly, you should see a `🐇` icon in the
248
- `toolbox` instead of a `🐢`; if you have multiple `CUDA` devices available, you should see a `🚀` icon,
249
- and if you're using a Mac with `Metal`, you should see an `🍎` icon (click on the icon to see the device information).
250
-
251
- See here for more details on versions for the following:
252
- - [`cuda-nvcc`](https://anaconda.org/nvidia/cuda-nvcc)
253
- - [`cudatoolkit`](https://anaconda.org/nvidia/cuda-toolkit)
254
- - [`torch`](https://pytorch.org/get-started/locally/)
255
-
256
- ### ▶️ Run
257
-
258
- Finally, you can run the `toolbox` from the command line:
259
-
260
- ```bash
261
- # cmd
262
-
263
- # Run
264
- coralnet-toolbox
265
- ```
266
-
267
- ### **How to Upgrade**
268
-
269
- When opening the `toolbox`, you will be notified if there is an update available, and you have the _option_ to do so,
270
- if you so choose. To upgrade, run the following command from your terminal:
271
-
272
- ```bash
273
- # cmd
274
-
275
- uv pip install -U coralnet-toolbox==[enter_newest_version_here]
276
- ```
277
-
278
- Again, fall back to using just `pip` and not `uv` if this fails.
279
-
280
- ## 🌊 Success Stories
281
-
282
- Using the `toolbox`? Share your successes and we can feature your work to help others learn!
283
-
284
- ## 🐠 [**About CoralNet**](https://coralnet.ucsd.edu/source/)
285
-
286
- Coral reefs are vital ecosystems that support a wide range of marine life and provide numerous
287
- benefits to humans. However, they are under threat due to climate change, pollution, overfishing,
288
- and other factors. CoralNet is a platform designed to aid researchers and scientists in studying
289
- these important ecosystems and their inhabitants.
290
-
291
- CoralNet allows users to upload photos of coral reefs and annotate them with detailed information
292
- about the coral species and other features present in the images. The platform also provides tools
293
- for analyzing the annotated images, and create patch-based image classifiers.
294
-
295
- The CoralNet-Toolbox is an unofficial tool developed to augment processes associated with analyses that
296
- use CoralNet and Coral Point Count (CPCe).
297
-
298
- ## 🏁 **Conclusion**
299
-
300
- In summary, this repository provides a range of tools that can assist with interacting with
301
- CoralNet and performing various tasks related to analyzing annotated images. These tools can be
302
- useful for researchers and scientists working with coral reefs, as well as for students and
303
- hobbyists interested in learning more about these important ecosystems.
304
-
305
- ## 📝 Citation
306
-
307
- If used in project or publication, please attribute your use of this repository with the following:
308
-
309
- ```
310
- @misc{CoralNet-Toolbox,
311
- author = {Pierce, Jordan and Edwards, Clinton and Rojano, Sarah and Cook, Sophie and Sweeney, Edward and Costa, Bryan and Vieham, Shay and Battista, Tim},
312
- title = {CoralNet-Toolbox},
313
- year = {2023},
314
- howpublished = {\url{https://github.com/Jordan-Pierce/CoralNet-Toolbox}},
315
- note = {GitHub repository}
316
- }
317
- ```
318
-
319
- ---
320
-
321
- ## ⚠️ Disclaimer
322
-
323
- This repository is a scientific product and is not official communication of the National
324
- Oceanic and Atmospheric Administration, or the United States Department of Commerce. All NOAA
325
- GitHub project code is provided on an 'as is' basis and the user assumes responsibility for its
326
- use. Any claims against the Department of Commerce or Department of Commerce bureaus stemming from
327
- the use of this GitHub project will be governed by all applicable Federal law. Any reference to
328
- specific commercial products, processes, or services by service mark, trademark, manufacturer, or
329
- otherwise, does not constitute or imply their endorsement, recommendation or favoring by the
330
- Department of Commerce. The Department of Commerce seal and logo, or the seal and logo of a DOC
331
- bureau, shall not be used in any manner to imply endorsement of any commercial product or activity
332
- by DOC or the United States Government.
333
-
334
- ## 📝 License
335
-
336
- Software code created by U.S. Government employees is not subject to copyright in the United States
337
- (17 U.S.C. §105). The United States/Department of Commerce reserve all rights to seek and obtain
338
- copyright protection in countries other than the United States for Software authored in its
339
- entirety by the Department of Commerce. To this end, the Department of Commerce hereby grants to
340
- Recipient a royalty-free, nonexclusive license to use, copy, and create derivative works of the
341
- Software outside of the United States.