Compare commits

..

No commits in common. "9989d3e4d746aa33e417337e85eb52b9f3c54a82" and "0ef960c73a2501f27179c62dd632bf33592e9caa" have entirely different histories.

2 changed files with 7 additions and 18 deletions

View File

@ -8,11 +8,10 @@ Created on: 04.01.22
import datetime
from django.contrib.gis.db.models.functions import Area
from django.db.models import Q
from django.utils.timezone import now
from konova.management.commands.setup import BaseKonovaCommand
from konova.models import Geometry
from konova.models import Geometry, Parcel, District
class Command(BaseKonovaCommand):
@ -42,10 +41,7 @@ class Command(BaseKonovaCommand):
_today = now().date()
_date_threshold = _today - datetime.timedelta(days=1)
geometry_objects = Geometry.objects.filter(
Q(
Q(parcel_update_start__date__lte=_date_threshold) |
Q(parcel_update_start__isnull=True)
),
parcel_update_start__date__lte=_date_threshold,
parcel_update_end__isnull=True
)
@ -59,20 +55,12 @@ class Command(BaseKonovaCommand):
self._write_warning(f"Process parcels for {geometries.count()} geometry entries now ...")
i = 0
num_geoms = geometries.count()
geoms_with_errors = {}
for geometry in geometries:
self._write_warning(f"--- {datetime.datetime.now()} Process {geometry.id} now ...")
try:
geometry.update_parcels()
self._write_warning(f"--- Processed {geometry.get_underlying_parcels().count()} underlying parcels")
except Exception as e:
geoms_with_errors[geometry.id] = str(e)
geometry.update_parcels()
self._write_warning(f"--- Processed {geometry.get_underlying_parcels().count()} underlying parcels")
i += 1
self._write_warning(f"--- {i}/{num_geoms} processed")
self._write_success("Updating parcels done!")
for key, val in geoms_with_errors.items():
self._write_error(f" Error on {key}: {val}")
self._write_success(f"{num_geoms - len(geoms_with_errors)} geometries successfuly recalculated!")
self._break_line()

View File

@ -366,10 +366,11 @@ class Geometry(BaseResource):
diff = geom_envelope - self.geom
if diff.area == 0:
complexity_factor = 1
ratio = 1
else:
complexity_factor = self.geom.area / diff.area
ratio = self.geom.area / diff.area
complexity_factor = 1 - ratio
return complexity_factor