diff --git a/CHANGELOG.md b/CHANGELOG.md index 3051927..0064ae9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,7 @@ # Change Log -## Unreleased +## v0.2.0 - 2017-06-13 ### Added - Added scripts demonstrating how the released AfriSAR products for Pongara National Park, Gabon and Lope National Park, Gabon were created. These scripts are "afrisar_pongara.py" and "afrisar_lope.py" in the /scripts folder. The previous example processing script has also been updated, and is now called "basic_example.py". - Added kapok.rvog.rvogblselect(), a function which performs baseline selection using a number of different possible baseline ranking criteria. This allows incoherent multi-baseline forest height inversion. kapok.Scene.inv() will perform this multi-baseline forest height estimation if the "bl" keyword argument is set to either 'all' (to invert all baselines), or to a list of selected baseline indices. See help(kapok.Scene.inv) for more details, and help(kapok.rvog.rvogblselect) for details on the baseline ranking criteria that are currently available. Also added "minkz" keyword to kapok.Scene.inv() which sets the minimum kz value. For multi-baseline inversions, baselines with kz below this value will be excluded. For single-baseline inversions, the inversion will still be performed if kz is below this value, but a warning will be printed. @@ -22,6 +22,6 @@ - Fixed bug in handling of matrix regularization (reg keyword argument) for function kapok.cohopt.pdopt(). -## v0.1.0 - 2015-11-14 +## v0.1.0 - 2016-11-14 ### Added - Initial software version. Contains modules for UAVSAR data import, coherence optimization, data visualization, coherence region plotting, ground topography estimation using standard line fit procedure, RVoG forest model inversion, sinc function forest model inversion, and geocoding of output products. See user's manual and install guide in /docs folder. \ No newline at end of file diff --git a/README.md b/README.md index 0212461..77f058f 100755 --- a/README.md +++ b/README.md @@ -10,9 +10,9 @@ If you use this software in a published work, please cite it using the following For reference, also see the following journal articles for PolInSAR forest height estimation results using this software: -M. Simard and M. Denbina, "Forest Canopy Height Estimation with Airborne Repeat-Pass L-Band Polarimetric SAR Interferometry in North American Temperate and Boreal Forests," IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, Submitted, 2017. +M. Simard and M. Denbina, "An Assessment of Temporal Decorrelation Compensation Methods for Forest Canopy Height Estimation Using Airborne L-Band Same-Day Repeat-Pass Polarimetric SAR Interferometry," IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing, Submitted, 2017. -M. Denbina and M. Simard, "The effects of topography on forest height and structure estimation from PolInSAR," IEEE Transactions on Geoscience and Remote Sensing, Submitted, 2017. +M. Denbina and M. Simard, "The Effects of Topography on Forest Height and Structure Estimation from PolInSAR," IEEE Transactions on Geoscience and Remote Sensing, Submitted, 2017. This library is dependent on the following open source software libraries: diff --git a/docs/install_guide_mac.docx b/docs/install_guide_mac.docx deleted file mode 100755 index 755161a..0000000 Binary files a/docs/install_guide_mac.docx and /dev/null differ diff --git a/docs/install_guide_windows.pdf b/docs/install_guide_windows.pdf deleted file mode 100755 index 1410b3d..0000000 Binary files a/docs/install_guide_windows.pdf and /dev/null differ diff --git a/docs/manual.pdf b/docs/manual.pdf old mode 100755 new mode 100644 index 1806987..2293c10 Binary files a/docs/manual.pdf and b/docs/manual.pdf differ diff --git a/kapok/kapok.py b/kapok/kapok.py index a6aebb5..09e864b 100644 --- a/kapok/kapok.py +++ b/kapok/kapok.py @@ -1100,16 +1100,23 @@ def coh(self, pol=0, polb=None, bl=0, pix=None, bounds=None, **kwargs): pix (int): If you only wish to calculate the coherence for a single pixel, specify a tuple with the (azimuth,range) indices of the pixel here. - bounds (int): If you only wish to calculate the coherence for + bounds (tuple): If you only wish to calculate the coherence for a subset of the data, specify the subset boundaries in the - form: (azmin,azmax,rngmin,rngmax). Note: This keyword - overrides the pix keyword, if both are given. + form: (azmin,azmax,rngmin,rngmax). If bounds has only + two elements, it will be assumed to be (azmin,azmax), with + the returned data spanning the full width of the swath. + Note: This keyword overrides the pix keyword, if both + are given. **kwargs: Extra keyword arguments. Returns: coh (array): A complex coherence image. """ + if bounds is not None: + if len(bounds) == 2: + bounds = (bounds[0], bounds[1], 0, self.dim[1]) + if polb is None: polb = pol @@ -1393,11 +1400,13 @@ def geo(self, data, outfile, outformat='ENVI', resampling='pyresample', def ingest(self, file, name, attrname=None, attrunits='', overwrite=False): - """Ingest ancillary data into Kapok HDF5 file. + """Ingest ancillary raster data in the WGS84 Geographic coordinate + system, reproject into radar coordinates, and save in the Kapok + HDF5 file. - Allows the user to import ancillary raster data in ENVI format such as - lidar, external DEMs, etc. This external raster data will be - resampled to the radar coordinates using bilinear interpolation, + Allows the user to import ancillary raster data in ENVI format + such as lidar, external DEMs, etc. This external raster data will + be resampled to the radar coordinates using bilinear interpolation, then saved to the HDF5 file as datasets with the same dimensions as the radar data. The ingested data can then be compared to the radar-derived products or used in guided inversion functions, etc. @@ -1405,7 +1414,7 @@ def ingest(self, file, name, attrname=None, attrunits='', overwrite=False): Data will be stored in the HDF5 file under 'ancillary/', where is the string given in the name argument to this function. - N.B. The data to import should be in ENVI format, in WGS84 Geographic + N.B. The data to import must be in WGS84 Geographic (latitude, longitude) coordinates. Arguments: @@ -1414,13 +1423,13 @@ def ingest(self, file, name, attrname=None, attrunits='', overwrite=False): name (str): Name of the HDF5 dataset which will be created to store the ingested data. attrname (str): Name which will be put into a 'name' attribute - of the dataset. Will be shown when displaying the data using - Scene.show(), etc. Default: Same as name. - attrunits (str): Units of the data. Will be shown on plots of the - data using Scene.show(), etc. + of the dataset. Will be shown when displaying the data + using Scene.show(), etc. Default: Same as name. + attrunits (str): Units of the data. Will be shown on plots of + the data using Scene.show(), etc. overwrite (bool): Set to True to overwrite an already existing - HDF5 dataset, if one already exists under the same name as the - name input argument. Default: False. + HDF5 dataset, if one already exists under the same name as + the name input argument. Default: False. Returns: data: A link to the newly created HDF5 dataset containing the diff --git a/setup.py b/setup.py index b8f4e3e..a7c20bf 100644 --- a/setup.py +++ b/setup.py @@ -41,7 +41,7 @@ name='Kapok', version='0.2.0', - description='A python library for PolInSAR forest height estimation using UAVSAR data.', + description='A Python library for PolInSAR forest height estimation using UAVSAR data.', long_description=long_description, url='https://github.com/mdenbina/kapok',