debug lauch; 修复无地理信息时闪退问题

This commit is contained in:
copper 2023-07-31 20:56:16 +08:00
parent 9691d71f5a
commit 89f54f69f3
3 changed files with 28 additions and 7 deletions

16
.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,16 @@
{
// 使 IntelliSense
//
// 访: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: ECD",
"type": "python",
"request": "launch",
"program": "ECD.py",
"console": "integratedTerminal",
"justMyCode": true
}
]
}

View File

@ -60,7 +60,7 @@ class ActionManager(QtCore.QObject):
self.change_detection_menu = menubar.addMenu('&通用变化检测')
# self.unsupervised_menu = self.change_detection_menu.addMenu(IconInstance().UNSUPERVISED, '&无监督变化检测')
self.supervised_menu = self.change_detection_menu.addMenu(IconInstance().SUPERVISED,'&监督变化检测')
self.ai_menu = self.change_detection_menu.addMenu(IconInstance().AI_DETECT,'&AI变化检测')
# self.ai_menu = self.change_detection_menu.addMenu(IconInstance().AI_DETECT,'&AI变化检测')
self.special_chagne_detec_menu = menubar.addMenu( '&专题变化检测')
self.water_menu = self.special_chagne_detec_menu.addMenu(IconInstance().WATER_CHANGE,'&水体变化检测')
self.veg_menu = self.special_chagne_detec_menu.addMenu(IconInstance().VEGETATION,'&植被变化检测')

View File

@ -367,14 +367,16 @@ class GridLayer(BasicLayer):
self.cell_size = cell_size
self.proj = proj
if proj == '':
geo = [0, 1, 0, 0, 0, -1]
self.geo = geo
self.x_size = x_size
self.y_size = y_size
self.x_size = np.abs(x_size)
self.y_size = np.abs(y_size)
self.x_min = geo[0]
self.y_min = geo[3]
self.x_res = geo[1]
self.y_res = geo[5]
self.y_res = -np.abs(geo[5])
self.x_max = self.x_min + self.x_res * self.x_size
self.y_max = self.y_min + self.y_res * self.y_size
self.x_lines = []
@ -384,15 +386,18 @@ class GridLayer(BasicLayer):
self.x_lines.pop()
self.x_lines.append(self.x_max)
self.y_lines = []
for yi in range(self.y_size // self.cell_size[1]+1):
for yi in range(np.abs(self.y_size) // self.cell_size[1]+1):
self.y_lines.append(self.y_min + self.y_res * yi * self.cell_size[1])
if self.y_lines[-1] < self.y_max:
self.y_lines.pop()
self.y_lines.append(self.y_max)
crs = QgsCoordinateReferenceSystem()
crs.createFromString('WKT:{}'.format(proj))
proj_str = ''
if proj != '':
crs.createFromString('WKT:{}'.format(proj))
proj_str = crs.toProj()
# print(crs)
lines_layer = QgsVectorLayer('LineString?crs={}'.format(crs.toProj()), 'temp-grid-outline', "memory")
lines_layer = QgsVectorLayer('LineString?crs={}'.format(proj_str), 'temp-grid-outline', "memory")
if not lines_layer.isValid():
Project().message_box.error('Failed to create grid outline layer')
return