opticallyshallowdeep 1.2.2__tar.gz → 1.2.3__tar.gz

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 (24) hide show
  1. {opticallyshallowdeep-1.2.2/opticallyshallowdeep.egg-info → opticallyshallowdeep-1.2.3}/PKG-INFO +24 -5
  2. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/README.md +12 -2
  3. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep/make_multiband_image.py +1 -1
  4. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep/run.py +2 -2
  5. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3/opticallyshallowdeep.egg-info}/PKG-INFO +24 -5
  6. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep.egg-info/requires.txt +1 -1
  7. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/setup.py +2 -2
  8. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/LICENSE +0 -0
  9. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/MANIFEST.in +0 -0
  10. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep/__init__.py +0 -0
  11. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep/check_transpose.py +0 -0
  12. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep/cloud_mask.py +0 -0
  13. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep/find_epsg.py +0 -0
  14. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep/make_vertical_strips.py +0 -0
  15. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep/models/SR.h5 +0 -0
  16. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep/models/TOA.h5 +0 -0
  17. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep/netcdf_to_multiband_geotiff.py +0 -0
  18. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep/parse_string.py +0 -0
  19. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep/process_as_strips.py +0 -0
  20. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep/write_georef_image.py +0 -0
  21. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep.egg-info/SOURCES.txt +0 -0
  22. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep.egg-info/dependency_links.txt +0 -0
  23. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/opticallyshallowdeep.egg-info/top_level.txt +0 -0
  24. {opticallyshallowdeep-1.2.2 → opticallyshallowdeep-1.2.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: opticallyshallowdeep
3
- Version: 1.2.2
3
+ Version: 1.2.3
4
4
  Summary: Identify optically shallow and deep waters in satellite imagery
5
5
  Author: Yulun Wu
6
6
  Author-email: yulunwu8@gmail.com
@@ -9,7 +9,7 @@ Requires-Python: >=3.8
9
9
  Description-Content-Type: text/markdown
10
10
  License-File: LICENSE
11
11
  Requires-Dist: geopandas
12
- Requires-Dist: rasterio
12
+ Requires-Dist: rasterio==1.3.9
13
13
  Requires-Dist: tifffile==2023.8.12
14
14
  Requires-Dist: netCDF4
15
15
  Requires-Dist: pyproj
@@ -18,6 +18,15 @@ Requires-Dist: scipy
18
18
  Requires-Dist: matplotlib
19
19
  Requires-Dist: imagecodecs
20
20
  Requires-Dist: tensorflow
21
+ Dynamic: author
22
+ Dynamic: author-email
23
+ Dynamic: classifier
24
+ Dynamic: description
25
+ Dynamic: description-content-type
26
+ Dynamic: license-file
27
+ Dynamic: requires-dist
28
+ Dynamic: requires-python
29
+ Dynamic: summary
21
30
 
22
31
  # Optically-Shallow-Deep
23
32
 
@@ -29,7 +38,9 @@ Supported input includes Level-1C (L1C) SAFE files and ACOLITE-processed L2R net
29
38
 
30
39
  **Publication:** Richardson, G., Foreman, N., Knudby, A., Wu, Y., & Lin, Y. (2024). Global deep learning model for delineation of optically shallow and optically deep water in Sentinel-2 imagery. *Remote Sensing of Environment*, 311, 114302. <a href="https://doi.org/10.1016/j.rse.2024.114302" target="_blank">https://doi.org/10.1016/j.rse.2024.114302</a>
31
40
 
32
- Originally coded by by Galen Richardson and Anders Knudby, modified and packaged by Yulun Wu
41
+ Originally coded by G. Richardson and A. Knudby, modified and packaged by Y. Wu
42
+
43
+ Models trained by G. Richardson and N. Foreman
33
44
 
34
45
 
35
46
  ## Installation
@@ -104,7 +115,7 @@ osd.run(file_L1C, folder_out, file_L2R=file_L2R)
104
115
  The L1C file is always required as it contains a built-in cloud mask. Pixels within 8 pixels of the cloud mask are masked to reduce the impact of clouds.
105
116
 
106
117
 
107
- Output is a 1-band geotiff, with values of prediction probability of optically shallow water (OSW): 100 means most likely OSW, 0 means most likely optically deep water (ODW). Non-water pixels are masked. It is recommended to treat pixels between 0 and 40 as ODW, and pixels between 60 and 100 as OSW (Richardson et al., 2024).
118
+ Output is a 1-band geotiff, with values of prediction probability of optically shallow water (OSW): 100 means most likely OSW, 0 means most likely optically deep water (ODW). Non-water pixels are masked.
108
119
 
109
120
  A log file, an intermediate multi-band geotiff, and a preview PNG are also generated in the output folder. They can be deleted after the processing.
110
121
 
@@ -115,6 +126,14 @@ A log file, an intermediate multi-band geotiff, and a preview PNG are also gener
115
126
 
116
127
  <img src="images/OSW.jpeg" height="500">
117
128
 
129
+
130
+ ## Tips
131
+
132
+ It is recommended to treat pixels with values between 0 and 40 as ODW, and those between 60 and 100 as OSW (Richardson et al., 2024).
133
+
134
+ Users have reported that averaging results from multiple images acquired on different days can help reduce noise and improve the overall accuracy of classification results.
135
+
136
+
118
137
  ## Training, test, and validation data
119
138
 
120
139
  All annotated shapefiles used in training, testing, and validating the DNN model are in the annotated_shapefiles folder, grouped by Sentinel-2 Scene ID.
@@ -8,7 +8,9 @@ Supported input includes Level-1C (L1C) SAFE files and ACOLITE-processed L2R net
8
8
 
9
9
  **Publication:** Richardson, G., Foreman, N., Knudby, A., Wu, Y., & Lin, Y. (2024). Global deep learning model for delineation of optically shallow and optically deep water in Sentinel-2 imagery. *Remote Sensing of Environment*, 311, 114302. <a href="https://doi.org/10.1016/j.rse.2024.114302" target="_blank">https://doi.org/10.1016/j.rse.2024.114302</a>
10
10
 
11
- Originally coded by by Galen Richardson and Anders Knudby, modified and packaged by Yulun Wu
11
+ Originally coded by G. Richardson and A. Knudby, modified and packaged by Y. Wu
12
+
13
+ Models trained by G. Richardson and N. Foreman
12
14
 
13
15
 
14
16
  ## Installation
@@ -83,7 +85,7 @@ osd.run(file_L1C, folder_out, file_L2R=file_L2R)
83
85
  The L1C file is always required as it contains a built-in cloud mask. Pixels within 8 pixels of the cloud mask are masked to reduce the impact of clouds.
84
86
 
85
87
 
86
- Output is a 1-band geotiff, with values of prediction probability of optically shallow water (OSW): 100 means most likely OSW, 0 means most likely optically deep water (ODW). Non-water pixels are masked. It is recommended to treat pixels between 0 and 40 as ODW, and pixels between 60 and 100 as OSW (Richardson et al., 2024).
88
+ Output is a 1-band geotiff, with values of prediction probability of optically shallow water (OSW): 100 means most likely OSW, 0 means most likely optically deep water (ODW). Non-water pixels are masked.
87
89
 
88
90
  A log file, an intermediate multi-band geotiff, and a preview PNG are also generated in the output folder. They can be deleted after the processing.
89
91
 
@@ -94,6 +96,14 @@ A log file, an intermediate multi-band geotiff, and a preview PNG are also gener
94
96
 
95
97
  <img src="images/OSW.jpeg" height="500">
96
98
 
99
+
100
+ ## Tips
101
+
102
+ It is recommended to treat pixels with values between 0 and 40 as ODW, and those between 60 and 100 as OSW (Richardson et al., 2024).
103
+
104
+ Users have reported that averaging results from multiple images acquired on different days can help reduce noise and improve the overall accuracy of classification results.
105
+
106
+
97
107
  ## Training, test, and validation data
98
108
 
99
109
  All annotated shapefiles used in training, testing, and validating the DNN model are in the annotated_shapefiles folder, grouped by Sentinel-2 Scene ID.
@@ -10,7 +10,7 @@ def make_multiband_image(file_in,folder_out):
10
10
  basename = os.path.basename(file_in).rstrip(".SAFE")
11
11
 
12
12
  # output path
13
- imageFile = os.path.join(folder_out,basename) + '.tif'
13
+ imageFile = os.path.join(folder_out, f"{basename}.tif")
14
14
 
15
15
  if os.path.exists(imageFile):
16
16
  print('Multi-band geotiff exists: ' + str(imageFile))
@@ -70,7 +70,7 @@ def run(file_L1C, folder_out, file_L2R = None, to_log=True):
70
70
  if file_L2R is None:
71
71
 
72
72
  if_SR = False
73
- model = 'models/TOA.h5'
73
+ model = os.path.join('models', 'TOA.h5')
74
74
  model_columns = GTOA_model_columns
75
75
  file_in = file_L1C
76
76
 
@@ -84,7 +84,7 @@ def run(file_L1C, folder_out, file_L2R = None, to_log=True):
84
84
  sys.exit('file_L2R does not exist: ' + str(file_L2R))
85
85
 
86
86
  if_SR = True
87
- model = 'models/SR.h5'
87
+ model = os.path.join('models', 'SR.h5')
88
88
  model_columns = GACOLITE_model_columns
89
89
  file_in = file_L2R
90
90
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: opticallyshallowdeep
3
- Version: 1.2.2
3
+ Version: 1.2.3
4
4
  Summary: Identify optically shallow and deep waters in satellite imagery
5
5
  Author: Yulun Wu
6
6
  Author-email: yulunwu8@gmail.com
@@ -9,7 +9,7 @@ Requires-Python: >=3.8
9
9
  Description-Content-Type: text/markdown
10
10
  License-File: LICENSE
11
11
  Requires-Dist: geopandas
12
- Requires-Dist: rasterio
12
+ Requires-Dist: rasterio==1.3.9
13
13
  Requires-Dist: tifffile==2023.8.12
14
14
  Requires-Dist: netCDF4
15
15
  Requires-Dist: pyproj
@@ -18,6 +18,15 @@ Requires-Dist: scipy
18
18
  Requires-Dist: matplotlib
19
19
  Requires-Dist: imagecodecs
20
20
  Requires-Dist: tensorflow
21
+ Dynamic: author
22
+ Dynamic: author-email
23
+ Dynamic: classifier
24
+ Dynamic: description
25
+ Dynamic: description-content-type
26
+ Dynamic: license-file
27
+ Dynamic: requires-dist
28
+ Dynamic: requires-python
29
+ Dynamic: summary
21
30
 
22
31
  # Optically-Shallow-Deep
23
32
 
@@ -29,7 +38,9 @@ Supported input includes Level-1C (L1C) SAFE files and ACOLITE-processed L2R net
29
38
 
30
39
  **Publication:** Richardson, G., Foreman, N., Knudby, A., Wu, Y., & Lin, Y. (2024). Global deep learning model for delineation of optically shallow and optically deep water in Sentinel-2 imagery. *Remote Sensing of Environment*, 311, 114302. <a href="https://doi.org/10.1016/j.rse.2024.114302" target="_blank">https://doi.org/10.1016/j.rse.2024.114302</a>
31
40
 
32
- Originally coded by by Galen Richardson and Anders Knudby, modified and packaged by Yulun Wu
41
+ Originally coded by G. Richardson and A. Knudby, modified and packaged by Y. Wu
42
+
43
+ Models trained by G. Richardson and N. Foreman
33
44
 
34
45
 
35
46
  ## Installation
@@ -104,7 +115,7 @@ osd.run(file_L1C, folder_out, file_L2R=file_L2R)
104
115
  The L1C file is always required as it contains a built-in cloud mask. Pixels within 8 pixels of the cloud mask are masked to reduce the impact of clouds.
105
116
 
106
117
 
107
- Output is a 1-band geotiff, with values of prediction probability of optically shallow water (OSW): 100 means most likely OSW, 0 means most likely optically deep water (ODW). Non-water pixels are masked. It is recommended to treat pixels between 0 and 40 as ODW, and pixels between 60 and 100 as OSW (Richardson et al., 2024).
118
+ Output is a 1-band geotiff, with values of prediction probability of optically shallow water (OSW): 100 means most likely OSW, 0 means most likely optically deep water (ODW). Non-water pixels are masked.
108
119
 
109
120
  A log file, an intermediate multi-band geotiff, and a preview PNG are also generated in the output folder. They can be deleted after the processing.
110
121
 
@@ -115,6 +126,14 @@ A log file, an intermediate multi-band geotiff, and a preview PNG are also gener
115
126
 
116
127
  <img src="images/OSW.jpeg" height="500">
117
128
 
129
+
130
+ ## Tips
131
+
132
+ It is recommended to treat pixels with values between 0 and 40 as ODW, and those between 60 and 100 as OSW (Richardson et al., 2024).
133
+
134
+ Users have reported that averaging results from multiple images acquired on different days can help reduce noise and improve the overall accuracy of classification results.
135
+
136
+
118
137
  ## Training, test, and validation data
119
138
 
120
139
  All annotated shapefiles used in training, testing, and validating the DNN model are in the annotated_shapefiles folder, grouped by Sentinel-2 Scene ID.
@@ -1,5 +1,5 @@
1
1
  geopandas
2
- rasterio
2
+ rasterio==1.3.9
3
3
  tifffile==2023.8.12
4
4
  netCDF4
5
5
  pyproj
@@ -5,7 +5,7 @@ with open("readme.md", "r") as fh:
5
5
 
6
6
  setup(
7
7
  name='opticallyshallowdeep',
8
- version='1.2.2',
8
+ version='1.2.3',
9
9
  author='Yulun Wu',
10
10
  author_email='yulunwu8@gmail.com',
11
11
  description='Identify optically shallow and deep waters in satellite imagery',
@@ -18,7 +18,7 @@ setup(
18
18
  'Programming Language :: Python :: 3'
19
19
  ],
20
20
  python_requires='>=3.8',
21
- install_requires=['geopandas','rasterio','tifffile==2023.8.12','netCDF4','pyproj',
21
+ install_requires=['geopandas','rasterio==1.3.9','tifffile==2023.8.12','netCDF4','pyproj',
22
22
  'joblib','scipy','matplotlib','imagecodecs','tensorflow']
23
23
  )
24
24