提交 32a9f2b6d3171ffb35d944b81096f0a416305b74

作者 nheweijun
1 个父辈 9aab7cbe

修改抽稀过程结束

... ... @@ -21,9 +21,8 @@ from app.util.component.TaskController import TaskController
21 21 from app.util.component.TaskWriter import TaskWriter
22 22 from osgeo.ogr import DataSource,Layer,Geometry
23 23 from osgeo import ogr
24   -from authlib.integrations.flask_oauth2 import current_token
25 24 from app.util.component.UserCheck import UserCheck
26   -
  25 +import copy
27 26
28 27
29 28 class Api(ApiTemplate):
... ... @@ -317,8 +316,8 @@ class VacuateProcess:
317 316
318 317 schema = layer.schema
319 318 # 增加统计字段
320   - schema.append(ogr.FieldDefn("_dcigrid_count_", ogr.OFTInteger))
321   - schema.append(ogr.FieldDefn("_dcigrid_name_", ogr.OFTString))
  319 + # schema.append(ogr.FieldDefn("_dcigrid_count_", ogr.OFTInteger))
  320 + # schema.append(ogr.FieldDefn("_dcigrid_name_", ogr.OFTString))
322 321
323 322 for l in range(self.max_level):
324 323 this_grid_len = self.this_gridsize[l]
... ... @@ -354,7 +353,7 @@ class VacuateProcess:
354 353 def vacuate(self,g,feature):
355 354
356 355 if self.is_spatial:
357   -
  356 + feat = copy.copy(feature)
358 357 # 插入到所有抽稀图层中
359 358 for level in range(self.max_level):
360 359
... ... @@ -375,7 +374,9 @@ class VacuateProcess:
375 374 if self.fill_dict[key] == 0:
376 375
377 376 vacuate_layer: Layer = self.vacuate_layers.get(level)
378   - feat = ogr.Feature(vacuate_layer.GetLayerDefn())
  377 +
  378 +
  379 + #feat = ogr.Feature(vacuate_layer.GetLayerDefn())
379 380 # 如果图形比网格小,直接存储其中心点
380 381 if this_grid_len>long_extent and this_grid_len>lat_extent:
381 382 feat.SetGeometry(center)
... ... @@ -383,27 +384,28 @@ class VacuateProcess:
383 384 feat.SetGeometry(g)
384 385
385 386 # 复制旧feature属性
386   - field_dict = feature.items()
387   - for field_name in field_dict:
388   - feat.SetField(field_name, field_dict[field_name])
389   -
390   - feat.SetField("_dcigrid_name_",".".join(key.split(".")[1:]))
  387 + # field_dict = feature.items()
  388 + # for field_name in field_dict:
  389 + # feat.SetField(field_name, field_dict[field_name])
  390 + #
  391 + # feat.SetField("_dcigrid_name_",".".join(key.split(".")[1:]))
391 392
392 393 vacuate_layer.CreateFeature(feat)
  394 +
393 395 self.fill_dict[key] += 1
394 396 #超大的还有机会
395 397 elif long_extent > 10 * this_grid_len or lat_extent > 10 * this_grid_len:
396 398 vacuate_layer: Layer = self.vacuate_layers.get(level)
397 399
  400 + # feat = ogr.Feature(vacuate_layer.GetLayerDefn())
398 401
399   - feat = ogr.Feature(vacuate_layer.GetLayerDefn())
400 402 feat.SetGeometry(g)
401 403
402 404 # 复制旧feature属性
403   - field_dict = feature.items()
404   - for field_name in field_dict:
405   - feat.SetField(field_name, field_dict[field_name])
406   - feat.SetField("_dcigrid_name_",".".join(key.split(".")[1:]))
  405 + # field_dict = feature.items()
  406 + # for field_name in field_dict:
  407 + # feat.SetField(field_name, field_dict[field_name])
  408 + # feat.SetField("_dcigrid_name_",".".join(key.split(".")[1:]))
407 409
408 410 vacuate_layer.CreateFeature(feat)
409 411 self.fill_dict[key] += 1
... ...
... ... @@ -18,6 +18,7 @@ from app.util.component.UserCheck import UserCheck
18 18 from app.util.component.VacuateConf import VacuateConf
19 19 from app.util.component.TaskController import TaskController
20 20 from app.util.component.TaskWriter import TaskWriter
  21 +import copy
21 22
22 23 class Api(ApiTemplate):
23 24 api_name = "单独抽稀"
... ... @@ -150,7 +151,7 @@ class Api(ApiTemplate):
150 151 if count%10000==0:
151 152 StructurePrint().print("{}图层已抽稀{}个对象".format(table.name, count))
152 153
153   - vacuate_process.set_vacuate_count()
  154 + # vacuate_process.set_vacuate_count()
154 155
155 156
156 157 #新增
... ... @@ -281,8 +282,8 @@ class VacuateProcess:
281 282
282 283 schema = layer.schema
283 284 # 增加统计字段
284   - schema.append(ogr.FieldDefn("_dcigrid_count_", ogr.OFTInteger))
285   - schema.append(ogr.FieldDefn("_dcigrid_name_", ogr.OFTString))
  285 + # schema.append(ogr.FieldDefn("_dcigrid_count_", ogr.OFTInteger))
  286 + # schema.append(ogr.FieldDefn("_dcigrid_name_", ogr.OFTString))
286 287
287 288 for l in range(self.max_level):
288 289 this_grid_len = self.this_gridsize[l]
... ... @@ -322,7 +323,7 @@ class VacuateProcess:
322 323 def vacuate(self,g,feature):
323 324
324 325 if self.is_spatial:
325   -
  326 + feat = copy.copy(feature)
326 327 # 插入到所有抽稀图层中
327 328 for level in range(self.max_level):
328 329
... ... @@ -344,7 +345,8 @@ class VacuateProcess:
344 345 if self.fill_dict[key] == 0:
345 346
346 347 vacuate_layer: Layer = self.vacuate_layers.get(level)
347   - feat = ogr.Feature(vacuate_layer.GetLayerDefn())
  348 +
  349 + # feat = ogr.Feature(vacuate_layer.GetLayerDefn())
348 350 # 如果图形比网格小,直接存储其中心点
349 351 if this_grid_len>long_extent and this_grid_len>lat_extent:
350 352 feat.SetGeometry(center)
... ... @@ -352,10 +354,10 @@ class VacuateProcess:
352 354 feat.SetGeometry(g)
353 355
354 356 # 复制旧feature属性
355   - field_dict = feature.items()
356   - for field_name in field_dict:
357   - feat.SetField(field_name, field_dict[field_name])
358   - feat.SetField("_dcigrid_name_",".".join(key.split(".")[1:]))
  357 + # field_dict = feature.items()
  358 + # for field_name in field_dict:
  359 + # feat.SetField(field_name, field_dict[field_name])
  360 + # feat.SetField("_dcigrid_name_",".".join(key.split(".")[1:]))
359 361
360 362 vacuate_layer.CreateFeature(feat)
361 363 self.fill_dict[key] += 1
... ... @@ -363,14 +365,15 @@ class VacuateProcess:
363 365 #超大的还有机会
364 366 elif long_extent > 10 * this_grid_len or lat_extent > 10 * this_grid_len:
365 367 vacuate_layer: Layer = self.vacuate_layers.get(level)
366   - feat = ogr.Feature(vacuate_layer.GetLayerDefn())
  368 +
  369 + # feat = ogr.Feature(vacuate_layer.GetLayerDefn())
367 370 feat.SetGeometry(g)
368 371
369 372 # 复制旧feature属性
370   - field_dict = feature.items()
371   - for field_name in field_dict:
372   - feat.SetField(field_name, field_dict[field_name])
373   - feat.SetField("_dcigrid_name_",".".join(key.split(".")[1:]))
  373 + # field_dict = feature.items()
  374 + # for field_name in field_dict:
  375 + # feat.SetField(field_name, field_dict[field_name])
  376 + # feat.SetField("_dcigrid_name_",".".join(key.split(".")[1:]))
374 377
375 378 vacuate_layer.CreateFeature(feat)
376 379 self.fill_dict[key] += 1
... ...
注册登录 后发表评论