Пример #1
0
def registrer_sag(filnavn: click.Path, **kwargs) -> None:
    """Skriv indledende sagsoplysninger til FIRE"""
    s = get_setup_dict(filnavn)
    assert "sagsid" in s
    assert "sagsbehandler" in s

    beskrivelse = afsnitsoverskrift(filnavn, "NIVELLEMENTSPROJEKT")

    sagsinfo = Sagsinfo(
        aktiv="true", behandler=s["sagsbehandler"], beskrivelse=beskrivelse
    )
    sag = Sag(id=s["sagsid"], sagsinfos=[sagsinfo])

    # Allerede registreret?
    try:
        sag2 = firedb.hent_sag(sag.id)
    except NoResultFound:
        firedb.indset_sag(sag)
    else:
        print("Sag allerede registreret")

    sag2 = firedb.hent_sag(sag.id)
    assert sag2.id == sag.id
    assert sag2.sagsinfos[0].beskrivelse == sag2.sagsinfos[0].beskrivelse
    print(sag2)
    assert sag2.id == sag.id
    for sagsinfo in sag.sagsinfos:
        print(repr(sagsinfo))
def main():
    sagsbeskrivelse = """Indsættelse af GR96/UTM24 koordinater.

Koordinaterne indsættes i FIRE i forbindelse med migrering fra
REFGEO til FIRE. Det er nødvendigt at indsætte projicerede
koordinater fordi Oracle databasens UTM transformation ikke
er pålidelig uden for den givne UTM zone. Dette er et problem
i forbindelse med udstillingsmodellen, hvor modellen kræver
at der stilles UTM northing og easting koordinater til rådighed.
Da Oracle ikke kan beregne disse koordinater troværdigt gør vi
det i stedet her med PROJ som motor. PROJ 6.3.1 benyttes.

Tidsstemplet på de transformerede koordinater sættes til
det aktuelle tidspunkt ved indsættelse, og den oprindelige
koordinats tidsstempel føres ikke med til de nye
transformerede koordinater.
"""

    # Undgå at oprette tonsvis af sager i test-fasen.
    # Hvis sagen findes genbruges den, hvis ikke
    # oprettes den.
    sagid = "6baaf540-3e8a-41b1-ae61-b785adf9687c"
    try:
        sag = firedb.hent_sag(sagid)
    except:
        sagsinfo = Sagsinfo(aktiv="true",
                            behandler="Kristian Evers",
                            beskrivelse=sagsbeskrivelse)
        firedb.indset_sag(Sag(id=sagid, sagsinfos=[sagsinfo]))
    finally:
        sag = firedb.hent_sag(sagid)

    utm24_2d = convert_coordinates("EPSG:4747")
    add_coordinates(sag, utm24_2d,
                    "Indsættelse af koordinater transformeret fra GR96 2D")
    utm24_3d = convert_coordinates("EPSG:4909")
    add_coordinates(sag, utm24_3d,
                    "Indsættelse af koordinater transformeret fra GR96 3D")
    utm24_the_rest = convert_heights()
    add_coordinates(
        sag, utm24_the_rest,
        "Indsættelse af koordinater transformeret fra WGS84 (lokationskoordinater)"
    )
Пример #3
0
def main():
    infotype = firedb.hent_punktinformationtype(ATTRIBUT)
    if infotype is None:
        firedb.indset_punktinformationtype(
            PunktInformationType(
                name=ATTRIBUT,
                anvendelse=fire.api.model.PunktInformationTypeAnvendelse.TEKST,
                beskrivelse="Fundamentalpunkt i referencesystemet angivet i TEKST",
            )
        )
        infotype = firedb.hent_punktinformationtype(ATTRIBUT)

    print(infotype)

    sagsinfo = Sagsinfo(
        aktiv="true",
        behandler="Kristian Evers",
        beskrivelse=sagsbeskrivelse
    )
    sagid = str(uuid.uuid4())
    firedb.indset_sag(Sag(id=sagid, sagsinfos=[sagsinfo]))
    sag =  firedb.hent_sag(sagid)

    punktinformationer =  []

    for srid, identer in PUNKTER.items():
        for ident in identer:
            try:
                punkt = firedb.hent_punkt(ident)
            except NoResultFound:
                print(f'fejl: {ident}')
                continue
            pi = PunktInformation(infotype=infotype, punkt=punkt, tekst=srid)
            punktinformationer.append(pi)

    sagseventinfo = SagseventInfo(beskrivelse=f"Indsættelse af {ATTRIBUT} attributter")
    sagsevent = Sagsevent(
        id=str(uuid.uuid4()),
        sag=sag,
        eventtype=fire.api.model.EventType.PUNKTINFO_TILFOEJET,
        sagseventinfos=[sagseventinfo],
        punktinformationer=punktinformationer,
    )
    firedb.indset_sagsevent(sagsevent)
Пример #4
0
def main():

    firedb.indset_punktinformationtype(
        PunktInformationType(
            name=ATTRIBUT,
            anvendelse=fire.api.model.PunktInformationTypeAnvendelse.FLAG,
            beskrivelse="Punkter i den oprindelige DVR90-udjævning",
        ))
    infotype = firedb.hent_punktinformationtype(ATTRIBUT)

    sagsinfo = Sagsinfo(aktiv="true",
                        behandler="Kristian Evers",
                        beskrivelse=sagsbeskrivelse)
    sagid = str(uuid.uuid4())
    firedb.indset_sag(Sag(id=sagid, sagsinfos=[sagsinfo]))
    sag = firedb.hent_sag(sagid)

    with open(POINT_FILE) as f:
        punkter = [punkt.strip() for punkt in f.readlines()]

        punktinformationer = []
        # interaktion med databasen er pokkers langsomt, vis fremdrift
        with click.progressbar(punkter, label="Punkter") as punkter_progress:
            for ident in punkter_progress:
                try:
                    punkt = get_punkt(ident)
                except sqlalchemy.orm.exc.NoResultFound:
                    print(f"Ident ikke fundet: {ident}")
                    continue

                pi = PunktInformation(infotype=infotype, punkt=punkt)
                punktinformationer.append(pi)

    sagseventinfo = SagseventInfo(
        beskrivelse=f"Indsættelse af {ATTRIBUT} attibutter")
    sagsevent = Sagsevent(
        id=str(uuid.uuid4()),
        sag=sag,
        eventtype=fire.api.model.EventType.PUNKTINFO_TILFOEJET,
        sagseventinfos=[sagseventinfo],
        punktinformationer=punktinformationer,
    )
    firedb.indset_sagsevent(sagsevent)
Пример #5
0
    Sag,
    Sagsinfo,
    Sagsevent,
    SagseventInfo,
    EventType,
)

# Sagshåndtering
sagsbeskrivelse = "Luk alle punkter fra REFGEO hvor MV_STATUS=-1"
sagsinfo = Sagsinfo(aktiv="true",
                    behandler="Kristian Evers",
                    beskrivelse=sagsbeskrivelse)
sagid = "af190b61-190b-413f-ba4d-432ecaca18d2"

try:
    sag = firedb.hent_sag(sagid)
except NoResultFound:
    sag = Sag(id=sagid, sagsinfos=[sagsinfo])
    firedb.indset_sag(sag)

sagsevent = Sagsevent(
    sag=sag,
    sagseventinfos=[
        SagseventInfo(beskrivelse="Lukning af punkter med REFGEO MV_STATUS=-1")
    ],
    id=uuid(),
    eventtype=EventType.PUNKT_NEDLAGT,
)

# Udtræk punkter
statement = text("""