add_geometry_field

dev
AlexP077 3 years ago
parent 95e952c58a
commit 0d97921999

@ -0,0 +1,27 @@
# Generated by Django 3.2 on 2023-02-18 16:27
import django.contrib.gis.db.models.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('service', '0001_initial'),
]
operations = [
migrations.RemoveField(
model_name='placementpoint',
name='lat',
),
migrations.RemoveField(
model_name='placementpoint',
name='lon',
),
migrations.AddField(
model_name='placementpoint',
name='geometry',
field=django.contrib.gis.db.models.fields.PointField(null=True, srid=4326, verbose_name='Координаты'),
),
]

@ -1,10 +1,9 @@
from django.db import models
from django.contrib.gis.db import models as gis_models
class PlacementPoint(models.Model):
location_id = models.IntegerField(null=True, blank=True, verbose_name='Id локации')
lon = models.FloatField(verbose_name="Долгота", null=True, blank=True)
lat = models.FloatField(verbose_name="Широта", null=True, blank=True)
geometry = gis_models.PointField(srid=4326, null=True, verbose_name='Координаты')
status = models.TextField(null=True, blank=True, verbose_name='Статус')
category = models.TextField(null=True, blank=True, verbose_name='Категория')
prediction = models.IntegerField(null=True, blank=True, verbose_name='Прогноз')

@ -64,7 +64,8 @@ def raschet(tables, filters, koefs, method):
def load_data(filepath: str):
models.PlacementPoint.objects.all().delete()
df = pd.read_csv(filepath).iloc[:, 1:].to_dict('records')
for data in tqdm(df, desc='Loading data...'):
dt = models.PlacementPoint(**data)
dt.save()
df = pd.read_csv(filepath).iloc[:, 1:]
for row in tqdm(df.to_dict('records'), desc='Loading data...'):
data = {k: row[k] for k in row.keys() if k not in ['lat', 'lon']}
data['geometry'] = f'POINT({row["lon"]} {row["lat"]})'
models.PlacementPoint.objects.create(**data)

Loading…
Cancel
Save