Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bugfix in save_gdal for boolean type & cluster.split_box2sub_boxes for tiny last step #1024

Merged
merged 4 commits into from
Jun 14, 2023

Conversation

yunjunz
Copy link
Member

@yunjunz yunjunz commented Jun 14, 2023

Description of proposed changes

  • save_gdal.py: convert numpy array from boolean to uint8, as GDAL does not support boolean data type, such as used in all the mask files.

  • objects.cluster.split_box2sub_boxes(): avoid the tiny last step (<5% of the normal step, or <5 pixels), by merging it into the 2nd last one. This happens to very large datasets sometimes. For example, if the last step has a size of 1, a 3D matrix will be turned into 2D, resulting in a reshape error.

  • objects.cluster.split_box2sub_boxes(): return the final number of sub_boxes, in addition to the current list of sub_boxes, for easier usage (as it may be different from the initial num_box as identified in resample: fix discrepancy between num_box and dest_box_list #940). Update the usage in all occurrences:

    • objects.resample
    • dem_error
    • diff
    • reference_date
    • timeseries2velocity

Reminders

  • Pass Pre-commit check (green)
  • Pass Codacy code review (green)
  • Pass Circle CI test (green)
  • Make sure that your code follows our style. Use the other functions/files as a basis.
  • If modifying functionality, describe changes to function behavior and arguments in a comment below the function declaration.

yunjunz added 3 commits June 13, 2023 22:24
…st one

+ objects.cluster.split_box2sub_boxes(): if the last step is too small (<5% or <5 pixels), merge it to the 2nd last one. This change is necessary to avoid the reshaping error when the step size of the last sub-box is 1, turning a 3D matrix into 2D, thus, resulting in a reshape error, such as in diff.py.

+ update the num_box based on the returned box_list from split_box2sub_boxes(), as it maybe different from the initially input num_box. This is similar to insarlab#940, but search and update all the other instances.
+ save_gdal.py: convert numpy array from boolean to uint8, as GDAL does not support boolean data type, such as used in all the mask files.
@yunjunz yunjunz changed the title bugfix in save_gdal for boolean type & cluster.split_box* for very large size support boolean type in save_gdal + cluster.split_box2sub_boxes return updated num_box Jun 14, 2023
@yunjunz yunjunz changed the title support boolean type in save_gdal + cluster.split_box2sub_boxes return updated num_box bugfix in save_gdal for boolean type & cluster.split_box2sub_boxes for tiny last step Jun 14, 2023
@yunjunz yunjunz merged commit 6fffa3b into insarlab:main Jun 14, 2023
@yunjunz yunjunz deleted the bugfix branch June 14, 2023 08:49
yunjunz added a commit to yunjunz/MintPy that referenced this pull request Jun 14, 2023
…` for tiny last step (insarlab#1024)

+ `save_gdal.py`: convert numpy array from boolean to uint8, as GDAL does not support boolean data type, such as used in all the mask files.

+ `objects.cluster.split_box2sub_boxes()`: avoid the tiny last step (<5% of the normal step, or <5 pixels), by merging it into the 2nd last one. This happens to very large datasets sometimes. For example, if the last step has a size of 1, a 3D matrix will be turned into 2D, resulting in a reshape error.

+ `objects.cluster.split_box2sub_boxes()`: return the final number of sub_boxes, in addition to the current list of sub_boxes, for easier usage (as it may be different from the initial num_box as identified in insarlab#940). Update the usage in all occurrences:
   - objects.resample
   - dem_error
   - diff
   - reference_date
   - timeseries2velocity
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant