You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2021-12-11 08:49:06

Wetterauer
Member
From: Wetterau
Registered: 2021-07-10
Posts: 410

Overpass: Datum bzw. Stringvergleich

Nach nun 2 Stunden hat mich der Ergeiz verlassen und ich frage nun wieder einmal die Spezialisten.

Es gibt den Tag check_date. Er sollte ein Datum enthalten. Wie kann ich nun die Differenz zu einem Vergleichsdatum bilden bzw wie kann ich Objekte finden deren check_date Datum vor einem bestimmten Datum liegt?

hmm


Änderungen werden von mir i.d.R. nicht gelöscht, sondern durchgestrichen

Offline

#2 2021-12-11 09:01:16

Eifelkobold!
Member
From: Eifel
Registered: 2020-05-12
Posts: 23

Re: Overpass: Datum bzw. Stringvergleich

Vielleicht hilft dir dieses Beispiel: https://wiki.openstreetmap.org/wiki/DE: … ungszeiten oder dieser Thread https://forum.openstreetmap.org/viewtopic.php?id=70698 Im Grunde müssten diese Abfragen in die gewünschte Richtung gehen und entsprechend anpassbar sein.

Last edited by Eifelkobold! (2021-12-11 09:24:56)

Offline

#3 2021-12-11 09:25:36

surveyor54
Member
From: Rhein-Main-Gebiet
Registered: 2010-05-23
Posts: 415

Re: Overpass: Datum bzw. Stringvergleich

[out:xml][timeout:25];
// gather results
(
  
nwr[~"check"~"."](if: timestamp() < "2020-08-01T00:00:00Z" )({{bbox}});
  );
// print results
out body;
out meta;
>;
out skel qt;

Vielleicht so etwas in der Art?

Offline

#4 2021-12-11 11:33:05

Wetterauer
Member
From: Wetterau
Registered: 2021-07-10
Posts: 410

Re: Overpass: Datum bzw. Stringvergleich

Hm, die Abfragen, die ich mir angesehen habe, arbeiten entweder mit einem Stringvergleich oder mit der Funktion timestamp. Die timestamp-Funktion liefert aber das Datum der letzten Veränderung des Datensatzes. Das bedeutet aber, dass nicht das Datum im Tag check_date geprüft wird. Ich suche eine Möglichkeit mit der ich alle notes anzeigen lassen kann, bei denen das Datum, welches in check_date steht, vor einem festgelegten Datum liegt.

In etwa so:

node [check_date](if:DatumVon(check_date) < "2021-12-11")({{bbox}});

smile


Änderungen werden von mir i.d.R. nicht gelöscht, sondern durchgestrichen

Offline

#5 2021-12-11 11:37:06

Wetterauer
Member
From: Wetterau
Registered: 2021-07-10
Posts: 410

Re: Overpass: Datum bzw. Stringvergleich

Eigentlich brauche ich nur eine Funktion "String2Date".

Gibt es soetwas?


Änderungen werden von mir i.d.R. nicht gelöscht, sondern durchgestrichen

Offline

#6 2021-12-11 11:40:27

ToniE
Member
From: Ottobrunn, Bayern, Germany
Registered: 2016-06-13
Posts: 956

Re: Overpass: Datum bzw. Stringvergleich

Wetterauer wrote:

(if:DatumVon(check_date) < "2021-12-11")

(if: check_date < "2021-12-11") würde wohl den Wert des Keys 'check_date' als string mit "2021-12-11" vergleichen

Ist es das, was du meinst? Oder wann der Key 'check_date' das letzte mal geändert wurde? Muss ja nicht mir dem Wert von 'check_date' übereinstimmen.


Alle Edits meiner Kommentare sind (nur) Typofixes, wenn nicht explizit anders angegeben.

Offline

#7 2021-12-11 11:59:30

Wetterauer
Member
From: Wetterau
Registered: 2021-07-10
Posts: 410

Re: Overpass: Datum bzw. Stringvergleich

Der Tag check_date wird, laut Wiki verwendet, um festzuhalten, wann die letzte VorOrtKontrolle, ob ein Objekt noch vorhanden ist, durchgeführt wurde. Wenn ich nun die Objekte besuchen möchte, die seit x Jahren nicht mehr kontrolliert wurden, muss ich die Differenz des aktuellen Datums, also heute 2021-12-11 mit dem Datum, welches in check_date steht, z.B. 2011-01-12 bilden. Das kann ich mit einem einfachen Stringvergleich nicht erreichen.

sad


Änderungen werden von mir i.d.R. nicht gelöscht, sondern durchgestrichen

Offline

#8 2021-12-11 12:11:52

GerdP
Member
Registered: 2015-12-18
Posts: 1,972

Re: Overpass: Datum bzw. Stringvergleich

Wenn Du vom aktuellen Datum X Jahre abziehen kannst, dann reicht evtl. einfacher Stringvergleich.

Offline

#9 2021-12-11 12:12:24

ToniE
Member
From: Ottobrunn, Bayern, Germany
Registered: 2016-06-13
Posts: 956

Re: Overpass: Datum bzw. Stringvergleich

Wetterauer wrote:

Der Tag check_date wird, laut Wiki verwendet, um festzuhalten, wann die letzte VorOrtKontrolle, ob ein Objekt noch vorhanden ist, durchgeführt wurde. Wenn ich nun die Objekte besuchen möchte, die seit x Jahren nicht mehr kontrolliert wurden, muss ich die Differenz des aktuellen Datums, also heute 2021-12-11 mit dem Datum, welches in check_date steht, z.B. 2011-01-12 bilden. Das kann ich mit einem einfachen Stringvergleich nicht erreichen.

sad

D.h. und z.B.: timestamp() - check_date > 1 Jahr?

timestamp() in Unix-Sec umwandeln (seit 1.1.1970)

check_date in Unix-Sec umwandeln (seit 1.1.1970)

Die Frage halt: kann die Overpass-API das?


Alle Edits meiner Kommentare sind (nur) Typofixes, wenn nicht explizit anders angegeben.

Offline

#10 2021-12-11 12:21:09

ToniE
Member
From: Ottobrunn, Bayern, Germany
Registered: 2016-06-13
Posts: 956

Re: Overpass: Datum bzw. Stringvergleich

ToniE wrote:
Wetterauer wrote:

Der Tag check_date wird, laut Wiki verwendet, um festzuhalten, wann die letzte VorOrtKontrolle, ob ein Objekt noch vorhanden ist, durchgeführt wurde. Wenn ich nun die Objekte besuchen möchte, die seit x Jahren nicht mehr kontrolliert wurden, muss ich die Differenz des aktuellen Datums, also heute 2021-12-11 mit dem Datum, welches in check_date steht, z.B. 2011-01-12 bilden. Das kann ich mit einem einfachen Stringvergleich nicht erreichen.

sad

D.h. und z.B.: timestamp() - check_date > 1 Jahr?

timestamp() in Unix-Sec umwandeln (seit 1.1.1970)

check_date in Unix-Sec umwandeln (seit 1.1.1970)

Die Frage halt: kann die Overpass-API das?

was ist mit u(...)    keine Ahnung.

zu finden als "make ... timestamp=u(timestamp()) ..."

in https://wiki.openstreetmap.org/wiki/Ove … by_Example

Abschnitt: Making a Table of Object Versions


Alle Edits meiner Kommentare sind (nur) Typofixes, wenn nicht explizit anders angegeben.

Offline

#11 2021-12-11 12:29:35

ToniE
Member
From: Ottobrunn, Bayern, Germany
Registered: 2016-06-13
Posts: 956

Re: Overpass: Datum bzw. Stringvergleich

Brute force:

nwr[check_date=~/19[0-9][0-9]/]
nwr[check_date=~/20[0-1][0-9]/]

erschlägt alles: 1900 - 2019

Wenn es nur um x Jahre geht und das heutige Datum (Jahr) ist ja bekannt.

Last edited by ToniE (2021-12-11 12:30:42)


Alle Edits meiner Kommentare sind (nur) Typofixes, wenn nicht explizit anders angegeben.

Offline

#12 2021-12-11 13:46:23

ikonor
Member
Registered: 2010-11-08
Posts: 637
Website

Re: Overpass: Datum bzw. Stringvergleich

Wetterauer wrote:

Eigentlich brauche ich nur eine Funktion "String2Date".

date()

Date Check and Normalizer – Overpass API/Overpass QL - OpenStreetMap Wiki

Nicht getestet, nur über Inhaltsverzeichnis der Overpass QL Seite im Wiki gefunden.

Hier ein Beispiel für Overpass Turbo (Auszug), müsste sich aber auch mit dem "if:" Filter kombinieren lassen:

convert node
  ::id=id(), 
  older365=date(t["check_date"])<date("{{date:365days}}")
;

Highlight Objects with a check_date older than X – Overpass API/Overpass API by Example - OpenStreetMap Wiki

Offline

#13 2021-12-11 14:28:03

Wetterauer
Member
From: Wetterau
Registered: 2021-07-10
Posts: 410

Re: Overpass: Datum bzw. Stringvergleich

Bingo big_smile

Ich habe mit dem date() alles Mögliche und Unmögliche probiert. Immer ohne das gewünschte Ergebnis. Dabei habe ich natürlich dieses ominöse t nicht beachtet und weggelassen. Nachdem ich jetzt die Overpass QL nach t[ durchsucht habe, bin ich auch auf die entsprechende Beschreibung gestoßen. cool

Danke smile


Änderungen werden von mir i.d.R. nicht gelöscht, sondern durchgestrichen

Offline

#14 2021-12-11 14:41:33

ToniE
Member
From: Ottobrunn, Bayern, Germany
Registered: 2016-06-13
Posts: 956

Re: Overpass: Datum bzw. Stringvergleich

Wetterauer wrote:

Nachdem ich jetzt die Overpass QL nach t[ durchsucht habe, bin ich auch auf die entsprechende Beschreibung gestoßen.

Haste ma 'nen Link? Danke


Alle Edits meiner Kommentare sind (nur) Typofixes, wenn nicht explizit anders angegeben.

Offline

#15 2021-12-11 14:46:47

Wetterauer
Member
From: Wetterau
Registered: 2021-07-10
Posts: 410

Re: Overpass: Datum bzw. Stringvergleich

Na klar

https://wiki.openstreetmap.org/wiki/Ove … verpass_QL

Tag Value and Generic Value Operators


Änderungen werden von mir i.d.R. nicht gelöscht, sondern durchgestrichen

Offline

Board footer

Powered by FluxBB