tproduit / pic2map

QGIS plugin for camera orientation and interaction between a picture and the map (monoplotting).
22 stars 5 forks source link

Investigation of the monoplotter -> save raster crash #13

Closed apiszcz closed 4 years ago

apiszcz commented 4 years ago

1 set max map window size to be 4096 so pic2map can accommodate full size of input picture.

2 save to raster crash occurring in ortho.py:orthoInterpolation

Will continue to investigate.

apiszcz commented 4 years ago

The location where the python virtual machine crashes without any message is in ortho.py:orthoInterpolation. Testing a single line separate python file with required data sets to a disk and run the same command from the command line, the python VM crashes with no error messages. The linear and cubic method complete without error.

grid_z0 = np.uint8(interpolate.griddata(imPoints.T, np.squeeze(imLine[0,:]), (grid_x,grid_y), method='nearest'))

frpin33 commented 4 years ago

Hello Apiszcz, First of all, I would like to thank you for the help you gave me. I saw you found some issues with the app and even some solutions. On my side of thing, I don't really have the time right now to work on Pic2Map. Whenever I get more time I will check it out. For now, I invite you to make a pull request with the correction you made so I can include them in the next commit of Pic2Map.

apiszcz commented 4 years ago

Summary so far.

may want to consider 8192 in the future.

ui_monoplotter.py
FROM
line 65: self.spinBox.setMaximum (2000)
TO
line 65: self.spinBox.setMaximum (4096)

ideally user could select 'method' linear, nearest or cubic
ortho.py
FROM
            grid_z0 = np.uint8(interpolate.griddata(imPoints.T, np.squeeze(imLine[0,:]), (grid_x,grid_y), method='linear'))
.
.
TO
            grid_z0 = np.uint8(interpolate.griddata(imPoints.T, np.squeeze(imLine[0,:]), (grid_x,grid_y), method='cubic'))
            grid_z1 = np.uint8(interpolate.griddata(imPoints.T, np.squeeze(imLine[1,:]), (grid_x,grid_y), method='cubic'))
            grid_z2 = np.uint8(interpolate.griddata(imPoints.T, np.squeeze(imLine[2,:]), (grid_x,grid_y), method='cubic'))

and after the else:

TO
            grid = np.uint8(interpolate.griddata(imPoints.T, np.squeeze(imLine), (grid_x,grid_y), method='cubic'))
tproduit commented 4 years ago

I'm in the same situation as @frpin33. Unfortunately, currently, I don't have much time to invest in pic2map. It would be great if you could pull your correction.