Skip to content

Commit dad0ba7

Browse files
authored
Merge pull request #556 from ngageoint/integration/1.3.59-rc
Merge integration/1.3.59-rc into master
2 parents fb37deb + e76e1a6 commit dad0ba7

File tree

141 files changed

+7955
-904
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

141 files changed

+7955
-904
lines changed

CHANGELOG.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,64 @@ SarPy follows a continuous release process, so there are fairly frequent release
44
Since essentially every (squash merge) commit corresponds to a release, specific
55
release points are not being annotated in GitHub.
66

7+
## [1.3.59] - 2024-10-03
8+
### Added
9+
- `noxfile.py`
10+
- TOA visualization to `sarpy/visualization/cphd_kmz_product_creation.py`
11+
- Unit tests for `sarpy/tests/io/complex/sicd_elements`
12+
- `sarpy/tests/io/phase_history/cphd1_elements/conftest.py`
13+
- Unit tests for `sarpy/tests/io/phase_history/cphd1_elements`
14+
- CPHD 1.0.1 xml examples to `sarpy/tests/data`
15+
- `sarpy/processing/sicd/spectral_taper.py` and `sarpy/utils/sicd_sidelobe_control.py`
16+
- `--remap` argument to `sarpy/utils/create_product.py`
17+
- `GDM` to `sarpy/visualization/remap.py`
18+
- Unit tests for `sarpy/consistency/sicd_consistency.py`
19+
- Support reading CPHDs with an AmpSF PVP whose Data/SignalArrayFormat is CF8
20+
- Unit tests for `sarpy/consistency/sidd_consistency.py`
21+
- Support for MATESA TRE
22+
- Support reading/writing CPHDs with compressed signal arrays
23+
- Support for numpy 2.0
24+
### Fixed
25+
- `sarpy.io.kml.add_polygon` coordinate conditioning for older numpy versions
26+
- Replace unsupported `pillow` constant `Image.ANTIALIAS` with `Image.LANCZOS`
27+
- `sarpy/io/phase_history/cphd1_elements/GeoInfo.py` setters
28+
- SquintAngle calculation in `sarpy/io/complex/sicd_elements/SCPCOA.py`
29+
- Incorrectly assigned Graze in SIDD 2.0.0 and SIDD 3.0.0 ExploitationFeatures
30+
- SIDD `TimeCOAPoly` calculation
31+
- Set SIDD Display/Interpolation/Operation values to CORRELATION
32+
- `sarpy.io.phase_history.cphd1_elements.PVP.PVPType.get_size()`
33+
- SICD file reading in `sarpy/consistency/sicd_consistency.py`
34+
- Protect waveform validation from `waveform.TxFreqStart == None` in `sarpy/io/complex/sicd_elements/RadarCollection.py`
35+
- Fix `sarpy/io/complex/sicd_elements/Timeline.py` validation code to allow IPP T1End == T2Start
36+
- Properly close file objects in NITF and CPHD writers
37+
- SIDD file reading in `sarpy/consistency/sidd_consistency.py`
38+
- Application of adjustable parameter offsets in RIC frames during projection
39+
- Overflow bug in `ComplexFormatFunction` magnitude/phase -> real/imag
40+
- NITF image subheader parsing when there are more than 9 bands
41+
- Population of SIDD ExploitationFeatures resolution metadata when processed from a SICD
42+
- Fix BANDSB implementation to parse correctly
43+
- SingleLUTFormatFunction application for LUT with more than one dimension
44+
- SIDD NITF IALVL/IDLVL for NITFs consisting of multiple image segments and/or product images
45+
- Reading/writing of uncompressed NITF image segments with two complex-component bands interleaved by block/row
46+
- Replace deprecated `matplotlib.cm.get_cmap` with `matplotlib.pyplot.get_cmap`
47+
- ReferencePoint attribute in SIDD MeasurementType objects
48+
- Sentinel clutter radiometric polynomials are no longer transposed
49+
- NITFWriter no longer closes passed in file objects
50+
- Various SICD and SIDD elements fixed to better match NGA standard
51+
- Fixed case where DTEDInterpolator applied geoid offset incorrectly
52+
- Improved DTEDInterpolator handling of missing DEMs
53+
- SIDD 3.0.0 point projection
54+
- Restored missing antenna beam footprints in some KMZs
55+
- DTED parsing for tiles with null values
56+
- Improved mapping of SICD -> SIDD polarizations
57+
- Incorrect SIDD ISM.compliesWith definition
58+
- SIO reading/writing
59+
- SIDD 2.0+ FilterType handling
60+
- Erroneous SIDD consistency error re: NITF NBPP when PixelType=RGB24I
61+
- Properly recompute SCPCOA metadata when updating SCP using a DEM in `sarpy.io.complex.converter.conversion_utility`
62+
- SIDD GeoInfo namespace handling
63+
- Cache glob results in `GeoTIFF1DegList` to alleviate excessive filesystem load
64+
765
## [1.3.58] - 2023-08-07
866
### Added
967
- Added additional tests to test_sicd_elements_geodata.py

README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ MIT license.
8888

8989
Dependencies
9090
------------
91-
The core library functionality depends only on `numpy >= 1.11.0` and `scipy`.
91+
The core library functionality depends only on `numpy` and `scipy`.
9292

9393
Optional Dependencies and Behavior
9494
----------------------------------
@@ -114,8 +114,9 @@ message indicating the missing optional dependency.
114114
data in hdf5 format require the `h5py` package, this includes Cosmo-Skymed, ICEYE,
115115
and NISAR data.
116116

117-
- Reading an image segment in a NITF file using jpeg or jpeg 2000 compression
118-
and/or writing a kmz image overlay requires the `pillow` package.
117+
- Reading an image segment in a NITF file using jpeg or jpeg 2000 compression,
118+
reading a GeoTIFF DEM, and/or writing a kmz image overlay requires the `pillow`
119+
package.
119120

120121
- CPHD consistency checks, presented in the `sarpy.consistency` module, depend on
121122
`lxml>=4.1.1`, `networkx>=2.5`, `shapely>=1.6.4`, and `pytest>=3.3.2`. Note that these

docs/io/DEM/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ DEM reading elements (sarpy.io.DEM)
66
:caption: Contents:
77

88
geoid
9+
geotiff1deg
910
DEM
1011
DTED

docs/processing/sicd/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ SICD data processing (sarpy.processing.sicd)
99
normalize_sicd
1010
csi
1111
fft_base
12+
spectral_taper
1213
subaperture
1314
windows
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Spectral Taper methods (sarpy.processing.sicd.spectral_taper)
2+
=============================================================
3+
4+
.. automodule:: sarpy.processing.sicd.spectral_taper
5+
:members:
6+
:show-inheritance:
7+
:inherited-members:
8+

docs/utils/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ Command-line Utilities (sarpy.utils)
1212
nitf_utils
1313
cphd_utils
1414
nominal_sicd_noise
15+
sicd_sidelobe_control
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Apply/Remove a spectral taper window to/from a SICD (sarpy.utils.sicd_sidelobe_control)
2+
=======================================================================================
3+
4+
.. automodule:: sarpy.utils.sicd_sidelobe_control
5+
:members:
6+
:show-inheritance:
7+
:inherited-members:

noxfile.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#
2+
# Copyright 2023 Valkyrie Systems Corporation
3+
#
4+
# Licensed under MIT License. See LICENSE.
5+
#
6+
7+
import os
8+
9+
import nox
10+
11+
_PYTHON_VERSIONS = ['3.6', '3.11']
12+
_LOCATIONS = ["tests"]
13+
14+
15+
# Run only test session when no arguments are specified
16+
nox.options.sessions = ["test"]
17+
18+
19+
@nox.session(venv_backend="conda")
20+
@nox.parametrize('version', _PYTHON_VERSIONS)
21+
def test(session, version):
22+
assert 'SARPY_TEST_PATH' in os.environ
23+
args = session.posargs or _LOCATIONS
24+
session.conda_install(f'python={version}')
25+
session.install('.[all]')
26+
session.run("pytest", *args)

sarpy/__about__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
'__license__', '__copyright__']
2828

2929
from sarpy.__details__ import __classification__, _post_identifier
30-
_version_number = '1.3.58'
30+
_version_number = '1.3.59'
3131

3232
__version__ = _version_number + _post_identifier
3333

sarpy/consistency/cphd_consistency.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1184,6 +1184,7 @@ def check_channel_signal_data(self, channel_id, channel_node):
11841184

11851185
with self.precondition():
11861186
assert self.header is not None
1187+
assert self.xml.find('./Data/SignalCompressionID') is None
11871188
format_string = self.xml.findtext('./Data/SignalArrayFormat')
11881189
signal_dtype = cphd1_utils.binary_format_string_to_dtype(format_string)
11891190

0 commit comments

Comments
 (0)