1. 06 Sep, 2017 1 commit
  2. 19 Jul, 2017 1 commit
  3. 11 Jul, 2017 1 commit
  4. 08 Jul, 2017 1 commit
  5. 30 Jun, 2017 1 commit
  6. 16 Jun, 2017 1 commit
  7. 09 Jun, 2017 1 commit
  8. 28 Apr, 2017 1 commit
    • Daniel Scheffler's avatar
      Bugfix, code simplification · be709baf
      Daniel Scheffler authored
      components.CoReg.COREG:
      - revised _find_side_maximum()
      - _calc_shifted_cross_power_spectrum(): fix for not rejecting input image size of (0,0)
      
      updated __version__
      be709baf
  9. 26 Apr, 2017 1 commit
  10. 24 Apr, 2017 2 commits
    • Daniel Scheffler's avatar
      Fix for not respecting force_quadratic_win during integer shift validation; banned a numpy warning · d237a722
      Daniel Scheffler authored
      components.CoReg.COREG:
      - _calc_shifted_cross_power_spectrum(): banned numpy warning
      - revised _get_grossly_deshifted_images()
      - calculate_spatial_shifts(): added some more comments
      
      - updated __version__
      d237a722
    • Daniel Scheffler's avatar
      Some enhancements · 1dd27111
      Daniel Scheffler authored
      components.CoReg.COREG:
      - changed default value of window size to 256 px
      
      components.plotting:
      - plot functions now return figure instances
      
      components.Tie_Point_Grid.Tie_Point_Refiner:
      - _reliability_thresholding(): changed default of min_reliability to 60
      
      coreg_cmd: changed default of '-ws' to 256
      
      updated __version__
      1dd27111
  11. 05 Apr, 2017 1 commit
  12. 28 Mar, 2017 1 commit
    • Daniel Scheffler's avatar
      some new functions and improvements · 199c1e3b
      Daniel Scheffler authored
      components.CoReg_local.COREG_LOCAL:
      - view_CoRegPoints():
          - added keyword 'return_map'
          - revised size of major ticks
          - added separate color coding for attribute2plot='ANGLE'
          - added legend
      
      components.io:
      - write_shp(): now also accepts EPGS codes
      
      components.Tie_Point_Grid.Tie_Point_Grid:
      - added calc_rmse()
      - added calc_overall_mssim()
      - added plot_shift_distribution()
      - to_vectorfield(): fix for not properly setting output fill value
      
       components.Tie_Point_Grid.Tie_Point_Refiner:
       - run_filtering() fix for always appendinf 'L3_OUTLIER'
      
      updated __version__
      199c1e3b
  13. 21 Feb, 2017 1 commit
    • Daniel Scheffler's avatar
      Bugfixes · 39943c16
      Daniel Scheffler authored
      components.CoReg:
      - GeoArray_CoReg.poly is now a property (ensures auto-update in case footprint_poly is updated)
      - COREG:
          - _get_image_windows_to_match(): bugfix for incomplete assertion; added update of matchBox and otherBox in case of odd dimensions of output images
      
      components.geometry:
      - get_GeoArrayPosition_from_boxImYX(): bugfix for returning 1 row / column too much
      
      - updated __version__
      39943c16
  14. 13 Feb, 2017 1 commit
  15. 10 Feb, 2017 1 commit
    • Daniel Scheffler's avatar
      Bugfixes · 94da21e1
      Daniel Scheffler authored
      components.CoReg.COREG:
      - _get_clip_window_properties(): bugfix for wrong wrong position of output validation
      94da21e1
  16. 09 Feb, 2017 1 commit
    • Daniel Scheffler's avatar
      changed error handling within COREG; bugfix during RANSAC outlier detection · e16ef209
      Daniel Scheffler authored
      components.CoReg.COREG:
      - added _handle_error()
      - changed error handling
      
      components.CoReg_local.COREG_LOCAL:
      - __init__(): fix for bad error message
      
      components.Geom_Quality_Grid.Tie_Point_Refiner:
      - __init__(): RANSAC is not not run if there are less than 4 tie points available
      - _RANSAC_outlier_detection(): revised assertion
      
      - updated __version__
      e16ef209
  17. 03 Feb, 2017 1 commit
  18. 24 Jan, 2017 1 commit
    • Daniel Scheffler's avatar
      Bugfixes · 552e27c9
      Daniel Scheffler authored
      components.CoReg.COREG:
      - equalize_pixGrids(): bugfix for not updating 'band4match' after equalizing pixel grids
      
      components.Geom_Quality_Grid:
      - Geom_Quality_Grid:
          - _get_spatial_shifts(): bugfix
      - Tie_Point_Refiner:
          -  _RANSAC_outlier_detection(): bugfix
      
      - updated __version__
      552e27c9
  19. 20 Jan, 2017 3 commits
    • Daniel Scheffler's avatar
      Bugfix for deadlock in multiprocessing in case matching window size greater... · 4991fef7
      Daniel Scheffler authored
      Bugfix for deadlock in multiprocessing in case matching window size greater than 2x grid_res. Bugfix for wrong image grid equalization in case reference image has a lower resolution than target image.
      
      components.CoReg.COREG:
      - equalize_pixGrids(): bugfix for not respecting which pixel grid is to be used for coregistration
      
      components.Geom_Quality_Grid.Geom_Quality_Grid:
      - get_CoRegPoints_table(): updated array caching calls
      
      - updated __version__
      4991fef7
    • Daniel Scheffler's avatar
      components.CoReg.COREG: · ab3d5de9
      Daniel Scheffler authored
      - _get_clip_window_properties(): added timeout to while loop
      
      components.DeShifter.DESHIFTER:
      - moved unalignable grids warning to __init__
      - added property 'warping_needed'
      - revised _grids_alignable()
      
      - updated __version__
      ab3d5de9
    • Daniel Scheffler's avatar
      components.CoReg.COREG: · 46eeadd7
      Daniel Scheffler authored
      - refactored keyword 'multiproc' to 'CPUs' -> CPUs parameter passed by COREG_LOCAL is now properly handled
      - equalize_pixGrids(): added a print statement
      
      components.CoReg_local.COREG_LOCAL:
      - __init__(): updated COREG call
      
      coreg_cmd:
      - run_global_coreg() updated COREG call
      
      - updated __version__
      46eeadd7
  20. 19 Jan, 2017 2 commits
    • Daniel Scheffler's avatar
      Input BadDataMask with unexpected values is now rejected; fixed some bugs · a18134d5
      Daniel Scheffler authored
      components.CoReg:
      - GeoArray_CoReg
          - added type hint
          - mask_baddata is now set to an instance of BadDataMask -> input BadDataMask with unexpected values is now rejected
      - COREG:
          - revised _get_image_windows_to_match()
      
      components.CoReg_local.COREG_LOCAL:
      - __init__(): updated docstring
      
      components.DeShifter.DESHIFTER:
      - __init__(): bugfix for not available 'original map info'
      - correct_shifts(): added type hint; bugfix for wrong no-warping-condition
      - added float tolerance to output validation
      
      - updated __version__
      a18134d5
    • Daniel Scheffler's avatar
      some bugfixes and code improvements · 13c71a5c
      Daniel Scheffler authored
      components.CoReg.COREG:
      - _get_opt_winpos_winsize(): fixed broken type hint
      
      components.DeShifter.DESHIFTER:
      - __init__: changed setting of original_map_info; added comments
      - correct_shifts():
          - bugfix for wrong no-warping-condition
          - bugfix for wrong geotransform of GeoArray_shifted
          - added comments
          - added output validation
      
      components.Geom_Quality_Grid.Geom_Quality_Grid():
      - to_PointShapefile(): fixed broken type hint
      
      - updated __version__
      13c71a5c
  21. 03 Jan, 2017 1 commit
    • Daniel Scheffler's avatar
      a couple of bug fixes and stability improvements · 7e8f0d6f
      Daniel Scheffler authored
      components.CoReg.COREG:
      - __init__():
          - modified docstring (fmt_out keyword)
          - unsupported strings for output raster format are now properly catched
      - _calc_shifted_cross_power_spectrum():
          - modified docstring
          - added optional figure of fft images
      - _validate_ssim_improvement():
          - more stable code for handling not equal shapes of SSIM input arrays (seems to not be needed anymore)
          - bugfix for flagging tie points where SSIM kept the same (fixes issue of extensive point flagging during SSIM validity check)
      
      components.CoReg_local.COREG_LOCAL:
      - __init__():
          - modified docstring (fmt_out keyword)
          - unsupported strings for output raster format are now properly catched
      - view_CoRegPoints(): added keyword 'showFig' for optinally muting figure output
      
      components.DeShifter.DESHIFTER:
      - __init__(): modified docstring (fmt_out keyword)
      - correct_shifts(): bugfix for not performing resampling although the updated geotransform does not match he output grid
      
      components.Geom_Quality_Grid.Geom_Quality_Grid:
      - get_CoRegPoints_table():
          - bugfix for exception in case 'max_points' is given and actual number of points is below
          - added additional console output for number of found matches
      - to_GCPList(): bugfix for crash in case no tie point passed all validity checks
      
      components.Geom_Quality_Grid.TiePoint_Refiner:
      - _RANSAC_outlier_detection():
          - bugfix for negative residual threshold)
          - empty coordinate arrays are now properly catched
      
      - updated __version__
      7e8f0d6f
  22. 13 Dec, 2016 1 commit
    • Daniel Scheffler's avatar
      2nd revision for last bugfix · d27bf911
      Daniel Scheffler authored
      components.CoReg.COREG:
      - _calc_shifted_cross_power_spectrum():
          - COREG_obj.fftw_works is now properly set to True if no error occurs
      
      - updated __version__
      d27bf911
  23. 30 Nov, 2016 1 commit
    • Daniel Scheffler's avatar
      added check if fttw transformation works · 10ca789e
      Daniel Scheffler authored
      components.CoReg.COREG:
      - __init__(): added attribute 'fftw_works'
      - _calc_shifted_cross_power_spectrum():
          - added fallback for fourier transformation if output is empty
      
      components.CoReg_local.COREG_LOCAL:
      - __init__(): added check if fttw transformation works
      - added check_if_fftw_works()
      
      components.Geom_Quality_Grid.Geom_Quality_Grid:
      - _get_spatial_shifts(): now sets attribute 'fftw_works' before running shift calculation
      - get_CoRegPoints_table(): added 'fftw_works' to kwargs for _get_spatial_shifts()
      
      updated __version__
      10ca789e
  24. 29 Nov, 2016 1 commit
  25. 25 Nov, 2016 1 commit
    • Daniel Scheffler's avatar
      COREG_LOCAL: target image is now warped prior to tie point grid computation ->... · 7002fc05
      Daniel Scheffler authored
      COREG_LOCAL: target image is now warped prior to tie point grid computation -> saves 30-40% of total runtime
      
      components.CoReg.COREG:
      - added equalize_pixGrids()
      - _get_image_windows_to_match(): warping is now only executed if pixel grids are really different
      
      components.CoReg.COREG_LOCAL:
      - __init__(): edited docstring
      
      components.Geom_Quality_Grid.Geom_Quality_Grid:
      - __init__(): edited docstring
      - get_CoRegPoints_table(): included equalization of pixel grids prior to computation of tie point grid -> saves 30-40% of total runtime
      
      - updated __version__
      7002fc05
  26. 24 Nov, 2016 1 commit
    • Daniel Scheffler's avatar
      second revision of RANSAC algorithm; some bugfixes · 3aef0c73
      Daniel Scheffler authored
      components.CoReg.COREG:
      - _set_outpathes(): bugfix for wrong output path if only directory is given as output path
      
      components.CoReg_local.COREG_LOCAL:
      - view_CoRegPoints()
           - bugfix for showing wrong outlier points if outlier detection level is 3 (RANSAC)
           - changed color of RANSAC outliers to yellow
      
      components.Geom_Quality_Grid.Geom_Quality_Grid:
      - removed some deprecated code snippets
      - get_CoRegPoints_table(): bugfix for not passing quiet mode to Tie_Point_Refiner
      - to_GCPList(): added maximum count of tie points to be used for warping
      
      components.Geom_Quality_Grid.TiePoint_Refiner:
      - run_filtering(): bugfix for wrong merge result of RANSAC outlier results
      
      IO:
      - convert_gdal_to_bsq__mp(): added usage docstring
      
      - updated __version__
      3aef0c73
  27. 23 Nov, 2016 1 commit
    • Daniel Scheffler's avatar
      added new parameter '-max_points' to command line interface · bec655b1
      Daniel Scheffler authored
      components.CoReg.GeoArray_CoReg:
      - removed not neccessary if condition
      
      components.CoReg_local.COREG_LOCAL:
      - __init__(): edited docstring
      
      components.Geom_Quality_Grid.Geom_Quality_Grid:
      - __init__(): edited docstring
      
      coreg_cmd:
      - added new parameter '-max_points' to argparser for local coregistration
      
      - updated __version__
      bec655b1
  28. 22 Nov, 2016 1 commit
    • Daniel Scheffler's avatar
      first revision of multilevel outlier dection algorithm · e46224d5
      Daniel Scheffler authored
      components.CoReg.GeoArray_CoReg:
      - add_mask_bad_data() has been moved to GeoArray class within external library 'py_tools_ds'
      
      components,CoReg.COREG:
      - refactored attribute 'confidence_shifts' to 'shift_reliability'
      - _get_opt_winpos_winsize(): bugfix for indexing GeoArray with float values
      - refactored _calc_shift_confidence() to _calc_shift_reliability()
      
      components,CoReg.CoReg_local:
      - adjusted some code in consequence to new mask_baddata attribute within GeoArray
      - adopted view_CoRegPoints() to new outlier detection algorithm
      
      components,Geom_Quality_Grid.Geom_Quality_Grid:
      - renamed column 'CONFIDENCE' within CoRegPoints_table to 'RELIABILITY'
      - revised outlier detection algorithm:
          - _flag_outliers() has been moved to new class 'Tie_Point_Refiner'
          - _ransac_outlier_detection() has been moved to new class 'Tie_Point_Refiner'
          - to_GCPList() adopted to new outlier detection algorithm
      - added class class 'Tie_Point_Refiner'
      
      - updated __version__
      e46224d5
  29. 18 Nov, 2016 1 commit
    • Daniel Scheffler's avatar
      internal array attributes of COREG and COREG_LOCAL are now GeoArray instances;... · cc553994
      Daniel Scheffler authored
      internal array attributes of COREG and COREG_LOCAL are now GeoArray instances; added algorithm for calculating shift confidence
      
      components.CoReg.imParamObj:
      - refactored class to 'GeoArray_CoReg' - a subclass of GeoArray from external package 'py_tools_ds'
      -> fixes duplicate attributes within old class imParamObj
      - revised attribute settings
      - revised add_mask_bad_data()
      
      components.CoReg.COREG:
      - COREG.ref and COREG.shift are now instances of GeoArray
      - refactored attribures 'matchWin' and 'otherWin' to new attributes 'matchBox' and 'otherBox' (instances of boxObj)
      - attribures 'matchWin' and 'otherWin' are now instances of GeoArray class -> allows easy visualization and attribute access
      - added new attribute 'confidence_shifts' -> represents some kind of quality assessment for the calculated shifts
      - show_matchWin():
           - added docstring
           - function body simplification due to new GeoArray attributes
           - added alternative to interactive mode
      - added show_cross_power_spectrum(): function for quickly visulaizing an interactive 3D surface plot of cross power spectrum
      - _get_opt_winpos_winsize():
          - added docstring
          - added automatic adjustion of matching window size in case matching window extent exceeds dimensions of input image overlap area
               -> fixes wrong shift values at the input images (appeared in case of slighly structured image border / if border was no straight line)
      - _get_image_windows_to_match(): adapted function body to new GeoArray attributes
      - _shrink_winsize_to_binarySize():
          - adapted function body to new GeoArray attributes
          - bugfix for not updating COREG.success in case matchign window became too small
      - _get_peakpos(): added docstring
      - added _calc_shift_confidence(): function for calculating a single confidence percentage for assessing calculated shifts
      - _get_deshifted_otherWin(): - adapted function body to new GeoArray attributes
      - calculate_spatial_shifts(): added automatic calculation of shift confidence
      
      components.CoReg_local.COREG_LOCAL:
      - __init__():
          - added 2nd tieP_filter_level to docstring
          - COREG_LOCAL.imref and COREG_LOCAL.im2shift are now instances of GeoArray
          - added assertion regarding tieP_filter_level
      
      components.Geom_Quality_Grid.Geom_Quality_Grid:
      - _get_spatial_shifts(): now additionally returns COREG.confidence_shifts
      - get_CoRegPoints_table():
           - 'added new column 'CONFIDENCE' to Geom_Quality_Grid.CoRegPoints_table
      - _flag_outliers(): catched empty GeoDataFrame exception
      - test_if_singleprocessing_equals_multiprocessing_result(): now disables RANSAC outlier detection during calculation
      
      - updated __version__
      cc553994
  30. 17 Nov, 2016 1 commit
    • Daniel Scheffler's avatar
      added interactive visualization for comparing reference and target image... · e06e354b
      Daniel Scheffler authored
      added interactive visualization for comparing reference and target image coregistration before and after de-shifting
      
      components.CoReg.COREG:
      - __init__(): added assertion that rejects GeoArray objects where isinstance(geoArr, GeoArray) returns False due to Jupyter Notebook autoreload magic
      - _set_outpathes(): added assertion
      - added functin show_matchWin() for visualizing reference and target image coregistration before and after de-shifting
      
      components.CoReg_local.COREG_LOCAL:
      - __init__(): added assertion that rejects GeoArray objects where isinstance(geoArr, GeoArray) returns False due to Jupyter Notebook autoreload magic
      
      components.Geom_Quality_Grid.Geom_Quality_Grid:
      - separated RANSAC outlier detection from _flag_outliers()
      - added _ransac_outlier_detection(): still a prototype
      
      - updated __version__
      e06e354b
  31. 15 Nov, 2016 1 commit
    • Daniel Scheffler's avatar
      implemented support for cloud masks / bad data masks · 868d070e
      Daniel Scheffler authored
      components.CoReg.imParams:
      - __init__():  added attribute mask_baddata
      - added add_mask_bad_data()
      
      components.CoReg.COREG:
      - __init__(): implemented new keywords 'mask_baddata_ref' and 'mask_baddata_tgt'
      - _get_opt_winpos_winsize(): now checks bad data mask if window position is within bad data area
      
      components.CoReg_local.COREG_LOCAL:
      - __init__(): implemented new keywords 'mask_baddata_ref' and 'mask_baddata_tgt'
      
      components.Geom_Quality_Grid.Geom_Quality_Grid:
      - get_CoRegPoints_table(): added vectorized filtering of points within bad data area
      - _flag_outliers(): added docstring, some minor revisions
      
      coreg_cmd:
      - renamed parameters path_im0 and path_im1 to path_ref and path_tgt
      - added parameters '-mask_ref' and '-mask_tgt' to global an local argument parser
      
      - updated __version__
      868d070e
  32. 12 Nov, 2016 1 commit
    • Daniel Scheffler's avatar
      added tie point filtering by measuring SSIM improvement; fastened grid initialization · 55989a50
      Daniel Scheffler authored
      components.CoReg.imParams:
      - added attribute 'xygrid_specs'
      
      components.CoReg.COREG:
      - added attributes 'ssim_orig', 'ssim_deshifted', '_ssim_improved' and property 'ssim_improved'
      - _get_opt_winpos_winsize(): outlier assertion is now a tracked exception
      - _get_image_windows_to_match(): bugfix for passing rspAlg from wrong attribute
      - added function _get_deshifted_otherWin()
      - added function _validate_ssim_improvement()
      - calculate_spatial_shifts() added call for _validate_ssim_improvement()
      - added function _get_inverted_coreg_info()
      
      components.CoReg_local.COREG_LOCAL:
      - implemented keyword 'tieP_filter_level'
      - view_CoRegPoints(): implemented keyword 'hide_filtered'
      
      components.DeShifter.DESHIFTER:
      - bugfix for not handling attribute 'band2process' correctly
      - added attributes init_args and init_kwargs
      - revised _get_out_extent(): bugfix for not handling clip extent correctly; bugfix for wrong call of find_nearest()
      - correct_shifts(): bugfix for wrong condition in connection with target_xyGrid keyword
      
      components.Geom_Quality_Grid.Geom_Quality_Grid:
      - implemented keyword 'tieP_filter_level'
      - get_CoRegPoints_table():
           - exclusion of points outside of overlap polygon is now much faster
           - added new columns to CoRegPoints_table: 'SSIM_BEFORE', 'SSIM_AFTER', 'SSIM_IMPROVED', 'LAST_ERR'
      
      - updated __version__
      55989a50
  33. 09 Nov, 2016 2 commits
    • Daniel Scheffler's avatar
      added multiple keywords to COREG, COREG_LOCAL and Geo_Quality_Grid · 6504101e
      Daniel Scheffler authored
      components.CoReg.COREG:
      - implemented new keyword 'target_xyGrid'
      - added out format assertion
      
      components.CoReg_local.COREG_LOCAL:
      - implemented new keywords 'out_gsd', 'align_grids', 'match_gsd', 'target_xyGrid', 'resamp_alg_deshift', 'resamp_alg_calc'
      - modified output format assertion
      
      components.DeShifter.DESHIFTER:
      - edited docstring
      
      components.Geom_Quality_Grid.Geom_Quality_Grid:
      - implemented new keyword 'resamp_alg_calc'
      - CoRegPoints_table: edited print output
      - to_GCPList(): edited print output
      6504101e
    • Daniel Scheffler's avatar
      added output creation options to COREG, COREG_LOCAL and DESHIFTER (keyword... · 66cb7b38
      Daniel Scheffler authored
      added output creation options to COREG, COREG_LOCAL and DESHIFTER (keyword 'out_crea_options'); edited some docstrings
      
      components.CoReg.COREG:
      - implemented new keyword 'out_crea_options' for specifying GDAL output creation options
      - __init__(): edited docstring
      
      components.CoReg_local.COREG_LOCAL:
      - implemented new keyword 'out_crea_options' for specifying GDAL output creation options
      - __init__(): edited docstring
      
      components.DeShifter.DESHIFTER:
      - implemented new keyword 'out_crea_options' for specifying GDAL output creation options
      
      coreg_cmd:
      - added parameter '-fmt_out' to global coregistration subparser as well as to COREG call
      
      - updated __version__
      66cb7b38
  34. 08 Nov, 2016 2 commits
    • Daniel Scheffler's avatar
      some bugfixes; added multiple docstrings; updated __version__ · af659b8a
      Daniel Scheffler authored
      components.CoReg.COREG:
      - coreg_info: bugfix for recalculating spatial shifts although they are already there
      
      components.CoReg_local.COREG_LOCAL:
      - CoRegPoints_table(): added docstring
      - show_image_footprints(): added docstring
      
      components.DeShifter.DESHIFTER:
      - bugfix for not properly setting nodata value
      - correct_shifts(): bugfix for not passing nodata value when saving GeoArray
      
      components.Geom_Quality_Grid.Geom_Quality_Grid:
      - CoRegPoints_table: added docstring
      - GCPList: added docstring
      - _get_imXY__mapXY_points(): added print output
      - get_CoRegPoints_table(): updated progress bar calls
      - to_PointShapefile(): reordered keywords; added docstring
      
      - updated __version__
      af659b8a
    • Daniel Scheffler's avatar
      revised algorithm to derive footprint polygons; bugfix for getting stuck in while loop · 9736e3b6
      Daniel Scheffler authored
      components.CoReg:
      - imParams:
          - removed attribute 'corner_coords' (not needed anymore)
          - imParams.poly is now directly derived from GeoArray
      - COREG:
          - added keywords 'footprint_poly_ref' and 'footprint_poly_tgt'
          - refactored 'data_corners_im0' and 'data_corners_im1' to 'data_corners_ref' and 'data_corners_tgt'
          - _get_clip_window_properties(): bugfix for getting stuck within while loop
      
      components.CoReg_local:
      - COREG_LOCAL:
          - added keywords 'footprint_poly_ref' and 'footprint_poly_tgt'
          - refactored 'data_corners_im0' and 'data_corners_im1' to 'data_corners_ref' and 'data_corners_tgt'
          - added keyword 'ignore_errors' (not yet implemented completely)
      
      components.Geom_Quality_Grid.Geom_Quality_Grid:
      - get_CoRegPoints_table(): added empty GDF assertion; updated COREG kwargs
      
      components.geometry:
      - get_true_corner_mapXY(): added DeprecationWarning
      
      coreg_cmd:
      - updated calls for COREG and COREG_LOCAL
      - added TODOs
      9736e3b6