1. 09 Nov, 2016 1 commit
    • 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
  2. 08 Nov, 2016 1 commit
    • 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
  3. 03 Nov, 2016 3 commits
    • Daniel Scheffler's avatar
      bugfix for unalignable image grids in case of different image GSDs · f5f610a5
      Daniel Scheffler authored
      components.DeShifter.DESHIFTER:
      - _get_out_grid(): bugfix for negative ref_ygsd
      
      coreg_cmd:
      - edited some print outputs
      f5f610a5
    • Daniel Scheffler's avatar
      updated README; renamed dsc__CoReg_Sat_FourierShiftTheorem.py to coreg_cmd.py · fc06ff98
      Daniel Scheffler authored
      components.CoReg.COREG:
      - edited docstring
      
      - renamed dsc__CoReg_Sat_FourierShiftTheorem.py to coreg_cmd.py
      - updated __version__
      - updated README and associated figures
      fc06ff98
    • Daniel Scheffler's avatar
      added console argument parser for COREG_LOCAL; some bugfixes and further developments · 583bc6ce
      Daniel Scheffler authored
      components.CoReg:
      - imParams: mask is now calculated from only one band -> avoids reading the whole datacube
      
      components.CoReg_local:
      - COREG_LOCAL:
          - __init__(): some docstring modifications
          - added attribute '_success'
          - property quality_grid: now shows calculated coreg points figure in verbose mode
          - view_CoRegPoints(): added outlier filtering for points in figure
          - correct_shifts(): bugfix for trying to corrects shifts without GCPs
      
      components.Geom_Quality_Grid.Geom_Quality_Grid:
      - GCPList: bugfix for running to_GCPList() twice
      - get_CoRegPoints_table(): disabled verbose mode during grid calculation
      - to_GCPList(): now returns an empty list if no valid matches are available
      
      MAIN:
      - major revision; added subparsers; added argparser for COREG_LOCAL
      - added run_global_coreg()
      - added run_local_coreg()
      
      - updated __version__
      583bc6ce
  4. 29 Oct, 2016 1 commit
    • Daniel Scheffler's avatar
      resampling algorithms are now adjustable in COREG; bugfix for not respecting... · d017de6f
      Daniel Scheffler authored
      resampling algorithms are now adjustable in COREG; bugfix for not respecting taking nodata value when de-shifting
      
       COREG:
       - added keywords 'resamp_alg_deshift' and 'resamp_alg_calc'
       - updated docstring
       - added warning when resampling algorithm 'average' is chosen
       - _calc_shifted_cross_power_spectrum(): bugfix for not using pyfftw even if available
       - refactored calc_subpixel_shifts() to _calc_subpixel_shifts()
       - added _dict_rspAlg_rsp_Int
      
       DESHIFTER:
       - refactored dict_rspAlg_rsp_Int to property _dict_rspAlg_rsp_Int
       - added 'nodata' keyword
      
       MAIN:
       - fixed some typos
      d017de6f
  5. 28 Oct, 2016 1 commit
    • Daniel Scheffler's avatar
      COREG / DESHIFTER: output format is now adjustable via keyword argument;... · 265b2fc2
      Daniel Scheffler authored
      COREG / DESHIFTER: output format is now adjustable via keyword argument; Bugfix for wrong output filename
      
       COREG:
       - added keyword 'fmt_out' that allows to set the output format for deshifted data
       - improved docstring
       - Bugfix for missing output filename in case COREG had been instanced with default argument for path_out
      
       DESHIFTER:
       - added keyword 'fmt_out' that allows to set the output format for deshifted data
       - Bugfix for missing GeoArray in deshift_results in case align_grids=False
      
       MAIN:
       - updated default argument of '-o' option
      265b2fc2
  6. 27 Oct, 2016 1 commit
    • Daniel Scheffler's avatar
      added Python 2.7 compatibility · 03e8e8a0
      Daniel Scheffler authored
      COREG:
      - some modifications in order to ensure Python 2.7 compatibility
      - pyfftw is now only imported if available
      
      Geom_Quality_Grid:
      - some modifications in order to ensure Python 2.7 compatibility
      
      MAIN:
      - CoReg_Sat root directory is automatically added to PATH
      - py_tools_ds root directory is automatically added to PATH (expected to be in CoReg_Sat root directory)
      03e8e8a0
  7. 11 Oct, 2016 2 commits
    • Daniel Scheffler's avatar
      package structure revision; revised imports of external functions · d368e029
      Daniel Scheffler authored
      COREG:
      - some functions are now imported directly from py_tools_ds instead of from geometry
      - moved imParamObj and COREG to new module 'CoReg'
      
      DESHIFTER:
      - some functions are now imported directly from py_tools_ds instead of from geometry
      - moved DESHIFTER to new module 'DeShifter'
      
      Geom_Quality_Grid:
      - some functions are now imported directly from py_tools_ds instead of from geometry
      - moved Geom_Quality_Grid to new module Geom_Quality_Grid
      
      MAIN:
      - fixed a unicode string error within arg parser
      - some code style changes
      - bugfix for not properly parsing '-calc_cor'
      - __version__ is now imported from package.__init__
      
      package.__init__:
      - added __version__
      
      UTL:
      - removed deprecated imports
      
      IO:
      - revised some imports
      
      GEO:
      - removed all imports of functions that are not directly needed within geometry
      
      new modules:
      - CoReg
      - DeShifter
      - Geom_Quality_Grid
      d368e029
    • Daniel Scheffler's avatar
      fixed a lot of incompatibilities caused by only partial revisions; some... · b3a36182
      Daniel Scheffler authored
      fixed a lot of incompatibilities caused by only partial revisions; some bugfixes => version now fully operable again
      
      imParamObj:
      - bugfix for not recognizing nodata values if 0
      - bugfix for not setting  imParamObj.nodata in case of inmem-GeoArray
      - added automatic fix of invalid footprint polygon
      
      COREG:
      - implemented new keyword argument 'path_verbose_out'
      - set_outpathes(): major revision
      - added calc_integer_shifts()
      - added validate_integer_shifts()
      - calculate_spatial_shifts(): simiplified implementation of the algorithm
      - added some comments to calculate_spatial_shifts()
      - get_updated_map_info(): reordered print outputs
      - revised correct_shifts()
      - refactored shift_image_by_updating_map_info() to _shift_image_by_updating_map_info()
      - refactored align_coordinate_grids() to _align_coordinate_grids()
      - refactored resample_without_grid_aligning() to _resample_without_grid_aligning()
      
      DESHIFTER:
      - implemented new keyword 'path_out'
      - added object attribute self.align_grids
      - correct_shifts(): added some comments and the possibility to write results to disk
      
      Geom_Quality_Grid:     fixed some incompatibilities caused by revision of COREG and DESHIFTER; much faster multiprocessing by avoiding duplicated disk IO
      - __init__():
          - added docstring to __init__()
          - implemented possibility to pass a GeoArrays as arguments to __init__()
          - some code style changes
          - added nodata attribute
      - _get_imXY__mapXY_points(): revised  calculation of outer map coordinates
      - revised _get_spatial_shifts(): now self don't has to be pickled anymore if called in multiprocessing -> much faster multiprocessing
      - revised get_quality_grid() and implemented new call of _get_spatial_shifts()
      
      MAIN:
      - added parameter -vo (path verbose out)
      b3a36182
  8. 07 Oct, 2016 1 commit
    • Daniel Scheffler's avatar
      GEO: · 49fcecbd
      Daniel Scheffler authored
      - moved parts of get_true_corner_lonlat() to external packacke 'py_tools_ds'
      - added imports for some more functions from 'py_tools_ds'
      - added get_GeoArrayPosition_from_boxImYX()
      
      UTL:
      - added import of subcall_with_output()
      
      COREG:
      - moved class imParamObj to top-level
      - implemented functionality to calculate the entire coregistration based on an array (in addition to image paths)
      - added attribute tracked_errors and implemented it into COREG
      - updated warp_ndarray calls
      - revised coreg_info property
      - added a new version of correct_shifts()
      
      DESHIFTER:
      - major revision of the whole class (it is now not based on a GMS object anymore but on a GeoArray and coreg_results)
      - added function get_out_grid()
      - added property grids_alignable
      - added get_out_extent()
      - revised correct_shifts()
      - converted set_deshift_results() to property deshift_results
      49fcecbd
  9. 27 Sep, 2016 1 commit
    • Daniel Scheffler's avatar
      moved a lot of function to external package py_tools_ds · 68be9897
      Daniel Scheffler authored
      GEO:
      - moved nearly the whole body of geometry.py to py_tools_ds (functions are now imported from there)
      
      UTL:
      - moved find_nearest() to py_tools_ds
      
      COREG:
      - fixed wrong references to IO module
      - calculate_spatial_shifts(): fixed wrong calls of get_updated_map_info() and set_coreg_info()
      68be9897
  10. 26 Sep, 2016 1 commit
    • Daniel Scheffler's avatar
      first implementation parts for fusing standalone version and GMS version · 39fc5c9f
      Daniel Scheffler authored
      GEO:
      - updated find_nearest() calls within move_shapelyPoly_to_image_grid() and get_true_corner_lonlat()
      - improved docstring for corner_coord_to_minmax()
      - updated warp_ndarray(): added keyword argument 'outExtent_within'
      - added transform_utm_to_wgs84()
      - updated geotransform2mapinfo()
      
      UTL:
      - find_nearest(): major revision - it now supports an automatic round algorithm
      
      COREG:
      - __init__(): added some attributes in order to make it more compatible with GMS version
      - added get_updated_map_info()
      - added set_coreg_info()
      39fc5c9f
  11. 19 Aug, 2016 4 commits
  12. 17 Aug, 2016 2 commits
  13. 12 Aug, 2016 2 commits
    • Daniel Scheffler's avatar
      - added DESHIFTER class (not yet working) · 20c535bc
      Daniel Scheffler authored and Daniel Scheffler's avatar Daniel Scheffler committed
      - refactored CoReg object to "COREG"
      20c535bc
    • Daniel Scheffler's avatar
      Major revision of CoReg object in order to facilitate the code and make it more understandable. · 65d2916c
      Daniel Scheffler authored and Daniel Scheffler's avatar Daniel Scheffler committed
      All attributes of CoReg related to imref or im2shift are now bundled within a separate class objects "ref" and "shift"
      
      CoReg:
      - major revision of __init__() -> much clearer version
      - added documentation to __init__()
      - added set_outpathes() to set path_out and verbose_out
      - added get_image_params(): sets separate class objects "CoReg.ref" and "CoReg.shift" that contain all image related metadata
      - CoReg.win_pos (Y/X) changed to self.win_pos_XY
      - added documentation to get_image_windows_to_match()
      - revision of get_image_windows_to_match() to a much simpler and more effective version
      
      GEO:
      - added / changed docstrings within boxObj
      65d2916c
  14. 11 Aug, 2016 1 commit
    • Daniel Scheffler's avatar
      CoReg: · b039fdde
      Daniel Scheffler authored and Daniel Scheffler's avatar Daniel Scheffler committed
      - added parameter 'force_quadratic_win' for forcing a quadratic window size
      - replaced get_opt_fftw_winsize() by shrink_winsize_to_binarySize()
      
      GEO:
      - commented a limitation of shapelyImPoly_to_shapelyMapPoly_withPRJ()
      b039fdde
  15. 09 Aug, 2016 1 commit
    • Daniel Scheffler's avatar
      major revision of CoReg.get_clip_window_properties() · 0e97b1e4
      Daniel Scheffler authored and Daniel Scheffler's avatar Daniel Scheffler committed
      CoReg:
      - get_clip_window_properties():
          - now fully supports rectangular matching windows and properly outputs the aimed window sizes
          - the matching window size is automatically decreased if image overlap is too small
          - algorithm/code heavily facilitated by adding a self-updating boxObj representing the matching window
      - removed deprecated versions of get_clip_window_properties()
      
      GEO:
      - added class boxObj: a dynamic/self-updating box object for representing rectangular vector boxes
      - added converter functions shapelyImPoly_to_shapelyMapPoly_withPRJ(), shapelyImPoly_to_shapelyMapPoly()
      
      IO:
      - fixed a missing function reference in init_SharedArray_on_disk()
      0e97b1e4
  16. 07 Aug, 2016 1 commit
  17. 05 Aug, 2016 3 commits
    • Daniel Scheffler's avatar
      enabled shift correction · 1fa7ed5c
      Daniel Scheffler authored and Daniel Scheffler's avatar Daniel Scheffler committed
      1fa7ed5c
    • Daniel Scheffler's avatar
      updated version info · 5fbfd787
      Daniel Scheffler authored
      5fbfd787
    • Daniel Scheffler's avatar
      - implemented possibility to use rectangular matching windows instead of... · b69f5708
      Daniel Scheffler authored and Daniel Scheffler's avatar Daniel Scheffler committed
      - implemented possibility to use rectangular matching windows instead of quadratic ones -> allows valid matches in very narrow overlap areas
      - algorithm to define mathcing window size and position now makes use of shapely polygons
      
      CoReg:
      - window size is a tuple now, not an int anymore
      - adjusted get_opt_winpos_winsize() to accept window size tuples
      - added docstring to get_winPoly()
      - major revision of get_clip_window_properties()
          - now compatible with window size tuples
          - now makes use of shapely polygons
          - now supports rectangular matching windows
          - improved algorithm for getting optimal matching window position and size
      - added move_shapelyPoly_to_image_grid()
      
      ARG PARSER:
      - added support for window size tuples
      
      GEO:
      - fixed an import error of IO when library is used outside of linux console
      - added class boxYX
      - added shapelyImPoly_to_shapelyMapPoly()
      - added move_shapelyPoly_to_image_grid()
      - added round_shapelyPoly_coords()
      - added find_nearest_grid_coord()
      - added get_largest_onGridPoly_within_poly()
      - added get_smallest_shapelyImPolyOnGrid_that_contains_shapelyImPoly()
      - added shapelyImPoly2shapelyMapPoly()
      - added shapelyBox2BoxYX()
      - added get_imageCoords_from_shapelyPoly()
      b69f5708
  18. 02 Aug, 2016 6 commits
    • Daniel Scheffler's avatar
      enabled shift correction · fdd6b1e2
      Daniel Scheffler authored
      fdd6b1e2
    • Daniel Scheffler's avatar
    • Daniel Scheffler's avatar
      GEO: · 32b6e484
      Daniel Scheffler authored
      - updated warp_ndarray() and fixed a bug in the validation of the output dimensions calculated by rasterio that always expected a quadratic input array for performing a correction of out_cols and out_rows
      - fixed an import error while importing io module
      32b6e484
    • Daniel Scheffler's avatar
      - added multiprocessing argument to console argument parser · 07d1086a
      Daniel Scheffler authored
      - revised CoReg call
      07d1086a
    • Daniel Scheffler's avatar
    • Daniel Scheffler's avatar
      COREG_obj: Bugfixes and improved compatibility · 99fe64a4
      Daniel Scheffler authored
      - added parameter 'binary_ws'
      - get_winPoly: now returns XY coordinates instead of YX
      - replaced average resampling by cubic resampling due to sinus-like distortions in fft images when using average resampling
      - made usage of binary window sizes optional by adding an optional parser argument '-bin_ws' -> allows to set very small window sizes
      - correct_shifts(): now raises a warning if no results have been written due to failed detection of image displacements
      - shift_image_by_updating_map_info(): fixed a bug that caused to write the reference image as output in multiprocessing and if 'align_grids' is disabled
      
      Geom_Quality_Grid:
      - added parameter 'binary_ws'
      - added automatic setting of project name which is included in output folder structure
      - improved handling of output filenames
      - added automatic creation of output folder if not existing
      - added a new version of quality_grid_to_Raster_using_Kriging()
      - added Kriging_sp() and Kriging_mp()
      
      UTL:
      - find_nearest() now allows extrapolation and value exclusion
      
      IO:
      - write_envi() now accepts geotransform and projection information
      - updated input argument handling of fill_arr_on_disk()
      
      GEO:
      - fixed a bug in corner_coord_to_minmax() that caused the function to return only integer values
      - get_corner_coordinates() now takes a path instead of a gdal dataset as input -> prevents IO issues in connection with not properly closed gdal datasets
      - bugfixes in warp_ndarray()
      - fixed a bug in geotransform2mapinfo() that caused to return southern UTM zones instead of northern
      99fe64a4
  19. 20 Apr, 2016 1 commit
    • Daniel Scheffler's avatar
      - implemented geopandas instead of pandas · 3bca000f
      Daniel Scheffler authored
      - Geom_Quality_Grid.get_imXY__mapXY_points() now vectorized and much faster
      - revised Geom_Quality_Grid.get_quality_grid()   -> it now also calculated shift direction angles
      - revised Geom_Quality_Grid.quality_grid_to_PointShapefile()
      - added Geom_Quality_Grid.quality_grid_to_Raster_using_Kriging()
      - some fixes for more robustness in CoReg object
      - added utilities.cornerPoints_to_listOfXYPairs()
      - added utilities.get_coord_grid()
      - added utilities.convertGdalNumpyDataType()
      - added io.write_numpy_to_image()
      - added io.init_SharedArray_on_disk()
      - added io.fill_arr_on_disk()
      - added io.convert_gdal_to_bsq__mp()
      - added io.init_SharedArray_on_disk()
      - added geometry.angle_to_north()
      - added geometry.get_UTMzone()
      - added geometry.geotransform2mapinfo()
      3bca000f
  20. 15 Apr, 2016 2 commits
  21. 13 Apr, 2016 1 commit
    • Daniel Scheffler's avatar
      - fixed a bug that caused severe artifacts when code is run as moving window... · f97441ed
      Daniel Scheffler authored
      - fixed a bug that caused severe artifacts when code is run as moving window for generation of a shapefile containing image shifts
      - deleted deprecated functions
      - restructured parts of some functions
      - added COREG.fftw_win_size
      - revised COREG.get_grossly_deshifted_images() and deleted get_grossly_deshifted_im0() and get_corresponding_im1_clip()
      f97441ed
  22. 11 Apr, 2016 3 commits