PostGIS v2+
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Title of Series | ||
Number of Parts | 95 | |
Author | ||
License | CC Attribution 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/36144 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
| |
Keywords |
1
6
10
11
12
14
15
16
23
28
37
39
41
50
53
54
58
60
62
68
70
71
72
74
76
77
78
79
82
83
86
90
95
00:00
Lecture/Conference
00:42
GeomaticsOpen sourcePostgreSQLHTTPSQLBioinformatikComputer scienceEntire functionDatabaseComputer animation
01:53
Highlight <Programm>Lecture/Conference
02:22
GeometryTypComputer animation
02:58
GeometryComputer animation
03:20
Version <Informatik>Computer animationLecture/Conference
03:43
MultiplicationMathematical analysisFunction (mathematics)PostgreSQLField extensionTesselationBerechnungDatabaseMusical ensemblePolygonSurfaceHöheEngineering drawing
04:58
IndexPostgreSQLAlgorithmWINDOWS <Programm>Computer animation
05:34
Temporal logicOperatorSoliDFactory (trading post)Sound effectPartition of a setDatabaseVerschneidungGeometryKantePoint cloudQuery languagePyramid (geometry)PolygonIndexSoliDTable (information)SquareVolumeTemporal logicString (computer science)EckeConvex hullPostgreSQLBerechnungFunction (mathematics)EnergieMillisekundenbereichPhysical quantityVersion <Informatik>Airline <Programm>Lecture/ConferenceComputer animation
09:54
GeometryAPIGeometryGeodesicAlgorithmPostgreSQLPlane (geometry)Smooth functionsCladeSocial classPolygonGeometryKompressionComputer animation
11:36
OrbitBackupPolygonRow (database)AlgorithmWeightQuery languagePoint (geometry)Function (mathematics)Social classLink (knot theory)Lecture/ConferenceComputer animation
14:22
Greatest elementPolygonForestGreatest elementComputer animation
14:59
Greatest elementGeometryGreatest elementLinieHaar measureComputer animationDiagram
15:22
MultiplicationIndexGeometryRepresentational state transferFunction (mathematics)PostgreSQLComputer animation
16:02
GeometryFunction (mathematics)PostgreSQLHighlight <Programm>Attribute grammarLecture/ConferenceComputer animation
16:52
Open sourceSimilarity matrixPoint (geometry)Link (knot theory)Computer animation
17:36
Online helpGeometryKompressionBus (computing)GeometrySocial classNewton's law of universal gravitationCodeKompressionFunction (mathematics)GeometryPostgreSQLContribute <Programm>Continuous trackComputer animation
19:19
Electronic visual displayAlgorithmCurveGeometryVector graphicsLecture/Conference
20:06
Parameter (computer programming)Network topologyDecimalGeometryVersion <Informatik>Computer animation
20:47
Coordinate systemLecture/Conference
21:10
GeometryCASTKDECodeGoogleGraphical user interfaceTask (computing)User interfacePostgreSQLSoftwarePostgreSQLOperating systemCodeDistribution (mathematics)Patch (Unix)FuturERSGoogleStudent's t-testTable (information)Data typeDurchschnitt <Mengenlehre>IndexFile viewerVideo game consoleSphereXMLComputer animation
23:50
RoutingPostgreSQLQuery languageRoutingFunction (mathematics)Peg solitaireSeries (mathematics)VECTOR <Programm>ORACLSActiveXRouter (computing)File formatSpring (hydrology)Point cloudLecture/ConferenceComputer animation
25:26
PostgreSQLForestLecture/Conference
25:48
MIKE <Programm>PostgreSQLSoftware developerPostgreSQLComputer animation
26:18
TwitterClient (computing)SupremumLecture/Conference
28:05
Enhanced IDE
Transcript: German(auto-generated)
00:07
So, dann möchte ich jetzt das Wort übergeben an Herrn Felix Kunde und freue mich auf eine schöne Session. Dankeschön. Jo, herzlich willkommen zu diesem ersten Nachmittagstalk, die obligatorische Frage
00:24
zu Anfang, aber invertiert, weil die meisten von euch kennen sicherlich Proskis. Wer hat noch nie von Proskis gehört oder weiß gar nicht, was es ist? Also ich habe tatsächlich auf einem Gala-Event welche getroffen, bei denen das der Fall war. Okay, aber hier anscheinend nicht. Ja, kurz zu mir. Ich bin wissenschaftlicher Mitarbeiter an der Beutel-Schule, dort wo die Proskis
00:44
ja 2014 war und ich habe Geoinformatik-Background, bin da jetzt aber bei den Informatikern, habe letztes Jahr schon ein bisschen was davon erzählt, so im Bereich Deep Learning mache ich da ein bisschen was, aber mein Spezialgebiet sind eigentlich Geodatenbanken, also damit arbeite ich eigentlich am liebsten.
01:02
Und ja, mein Forschungsprojekt Excel, das werde ich morgen früh auch vorstellen. Also wer irgendwie heute Abend nicht so doll feiert oder so, kann sich das mal ansehen. Ja, was ist Proskis? Ihr habt keine Hand hoch gehoben, also werde ich das einfach überspringen. Warum ist das großartig? Also für die, die sich vielleicht nur mit Proskis auseinandersetzen und gar
01:21
nicht so sehr post-graskuell und die Entwicklung verfolgen, das ist halt auch ein sehr erfolgreiches Community-Projekt, was sich auch bestätig weiterentwickelt und auch eine sehr, sehr hohen Standard an auch die Code-Qualität hat. Also da werden so manche Feature, die vielleicht viele Firmen gerne haben wollen, die werden erst langsam in die Releases eingebacken, aber kommen nach und nach rein und sind dann auch meistens sehr, sehr robust und leistungsstark.
01:43
Ja, und Proskis natürlich umsonst. Das ist natürlich auch eine tolle Sache. Gut, also der Talk soll jetzt nicht so sehr sein. Was ist eigentlich Proskis? Wie funktioniert das eigentlich? Und die ganzen Funktionen aufzulisten wäre sowieso viel zu erschöpfen, denke ich mal. Ich wollte nur auf so ein paar Highlights eingehen, die jetzt pro Release
02:00
immer so dazugekommen sind. Also meistens merkt man sich ja immer so ein paar Dinge. So Poskis 2.4, Vector-Teils und so weiter. Aber es sind noch viele andere kleine Dinge dabei, die ihr vielleicht noch nicht so auf dem Schirm hattet. Oder ein paar Tipps, die ich noch nebenbei so geben kann von Funktionen, die ich entdeckt habe, wo ich dann gedacht habe, wie konnte ich vorher bloß ohne diese Funktion leben?
02:22
Ja, Poskis 2.0 gibt es seit 2012. Auch in genau dem Rahmen, wo ich auch meine Masterarbeit geschrieben habe, da ging es nämlich um 3D. Und das kam dann zum Glück genau rechtzeitig rein in den Trunk. Ja, was man seit Poskis 2.0 auch machen kann, ist, dass man diese Create-Table-Befehle, dass man da auch die Geometrie-Typ
02:41
gleich angeben kann und das Referenzsystem. Und was für eine Art von Geometrie das ist. Ich sehe aber trotzdem immer noch ganz viele Projekte, die immer mit diesem Edge-Geometry-Column arbeiten. Wahrscheinlich wegen Rückwärtskompatibilität. Ja, das sind noch so ein paar Feature, die damals hinzugekommen sind.
03:00
Das sind so Feature, mit denen man auch wahrscheinlich in dem Giz arbeitet. So eine Funktion wie Make-Valid ist zum Beispiel ganz nett, wenn man kaputte Geometrien hat, dass man die einfach mal repariert. Also alles kann man auch nicht reparieren, aber das ist schon mal so eine nette Hilfsfunktion. Und das Teilen von Geometrie, das Snappen, das sind alles so Dinge, die man irgendwie bisher auch macht. So, dann nach ein bisschen mehr als nach einem Jahr
03:22
kam dann Poskis 2.1 raus. Ich habe mal immer so das wesentliche Feature von dem Release immer da runter getan. Also hier war vor allem der Raster-Support ist in der Version eigentlich erst zur Gänze so gereift, dass die Entwickler noch sagen konnten, okay, jetzt ist es eigentlich erst richtig fertig,
03:40
so wie wir es eigentlich schon zum 2.0-Release haben wollten. Genau, es sind da ziemlich viele Funktionen. Die waren vor allem noch im PLP SQL, sind dann umgeschrieben worden nach C. Man konnte dann die Rastas auch in der Datenbank teilen. Das ging vorher immer nur on the fly mit diesem Loader Raster2PG SQL. Das konnte man dann auch in der Datenbank machen und man konnte die mehrere Bänder auch zusammenführen zu einem Raster.
04:04
Und es gab noch viele weitere Analysefunktionen. Ja, die Long-Nitre-Ingolierung kam dazu. Wenn man jetzt einen Haufen Punkte hat und die mit Höhenwerten versehen hat oder so, kann man daraus einfach so ein Geländemodell sich erstellen. Und ja, was sich schon bei 2.0 dazu kam,
04:22
ist die 3D-Unterstützung. Das ist eigentlich erst so richtig seit 2.1 auch als Erweiterung verfügbar. Es gab da eine Firma, die hat ein neues Backend für Postgres geschrieben, SFCgal. Und ja, ich glaube auch Windows-Nutzer können auch ab 2.2 das auch endlich als Extension hinzufügen.
04:40
Und das hat dann so Funktionen wie Extrosion von Polygonen, 3D-Flächen berechnen, 3D-Intersektionen berechnen. Und Tessellationen berechnen und so weiter. Es sind auch ein paar mehr Funktionen. Aber ich denke mal, mit Extrude kann man gleich mal eine nette 3D-Geodatenbank bauen. Es gibt bei jedem Release auch immer mehr.
05:00
Ich kann jetzt nicht alle Features so im Detail erklären. Deswegen nur kurz. Also es passiert auch immer viel so under the hood, was die meisten wahrscheinlich gar nicht mitkriegen, dass zum Beispiel ein Teilungsalgorithmus in einem R-Baum für den räumlichen Index sich da, dass da mal ein neuer Algorithmus entwickelt wurde und dass das verbessert wurde. Das kriegen wahrscheinlich die meisten von euch nicht mit.
05:24
Und gut, da sind wir schon mal Postgres 2.2. Hier waren wesentliche Neuerungen. Ich sagte es schon, dass man die 3D-Extension hinzufügen kann, auch unter Windows. Das war auch mal noch ein Meilstein für mich auf jeden Fall als Nutzer, der viel mit 3D gearbeitet hat. Und es gab auch hier ein paar 4D-Funktionen.
05:41
Was das genau bedeutet, werdet ihr gleich sehen. Das ist so eine dieser Funktionen, wo ich denke, dass, also wenn ihr eins mitnehmen solltet in diesem Vortrag, dann diese Funktion. Nehmt euch mal hier so einen Fall. Ihr habt so eine Riesenpolygon, so eine Überflutungsfläche und wollt wissen, welche Gebäude liegen alle da drinnen. Und dann führt ihr diesen räumlichen Verschnitt aus,
06:02
so wie ihr es sonst auch immer kennt. Ihr legt ein Index an und trotzdem dauert die Abfrage einfach noch ewig lange. Und da gibt es dann diesen Befehl SD-Subdivide. Damit könnt ihr einfach dieses große Wasserpolygon einfach in Quadrate unterteilen. Und wenn ihr dann einen räumlichen Verschnitt macht, ist er von wenigen Sekunden auf einmal im minimalen Millisekunden Bereich.
06:24
Der Effekt ist einfach hier, ihr müsst immer wissen, wenn ihr irgendwie Geometrien sucht, wenn ihr Verschneidungen macht, versucht immer, möglichst selektiv zu sein. Also bei so einem Riesenpolygon, bei so einem Riesenwasserpolygon seid ihr einfach überhaupt nicht selektiv. Also wenn ihr damit gegen die Datenbank geht, dass diese Bounding Box, das sind ja immer nur Bounding Box Erfragen
06:41
bei einem räumlichen Index, die Bounding Box von diesem Wasserpolygon würde einfach mal fast die ganze Stadt erschlagen. Und dann habt ihr einfach überhaupt keine Selektivität mehr. Wenn ihr das Ganze, das Wasserpolygon so einteilen lässt, wenn SD-Subdivide, das geht doch alles on the fly. Ihr müsst da nicht irgendwie temporäre Tabellen anlegen oder sowas. Dann sieht man ja hier schon, dass die Quadrate viel kleiner sind
07:02
und dass die Selektivität pro Quadrat natürlich sehr viel höher ist. Gibt es übrigens auch für Linien. Wer viel mit Trackingdaten arbeitet und da so Line Strings hat, die durch die ganze Stadt fliegen, kann man sich ja auch schnell, wenn man das alles mal sich, wenn man einfach nur mal rechte Ecke um alle Geometrien legt, dann hat man eigentlich eine ganz gute Sicht auf den Index und weiß sofort,
07:20
OK, das ist eigentlich überhaupt nicht, kann eigentlich gar nicht Performance sein, die muss ich unterteilen. Temporale Funktionen, das sind solche, die heißen unter anderem so tolle Namen wie Closest Point of Approach oder SD-Distance Closest Point of Approach. Stellt euch das einfach so vor, ihr habt zwei bewegende Objekte. Hier habe ich mal so ein schönes Beispiel, so ein Hurricane,
07:41
der annaht und über die ganzen, wie das über die Karibik hinweg fliegt. Und dann ist dann noch so ein Flugzeug, das war mal eine Delta Airline, die es dann noch geschafft hat, von Haiti über so einen Arm, wo gerade nicht so viel Wind war, im Hurricane noch rauszufliegen. Und da hätte man ja jetzt auch rechnen können, OK, wann war eigentlich der Zeitpunkt, wo die beiden sich am nächsten waren?
08:00
Was sind denn zwei bewegliche Objekte? Also da hat man auf jeden Fall eine Zeitdimension. Genau. 3D-Support wurde auch erweitert. Man konnte ab 2.2. auch Volumen berechnen von seinen, weiß nicht, hier zum Beispiel 3D-Gebäuden, so für Energieberechnung oder so ist das relativ wichtig.
08:22
Also gerade im Bereich 3D-Stadtmodellierung. Das Wichtige ist immer, Volumenberechnung geht nur auf Solids. Solids gibt es in Postgres aber nur implizit. Das heißt, ihr habt diese Polyhedral Surfaces, das sind so Hüllen und die müsst ihr mit ST-Make-Solid in ein Solid umwandeln und dann könnt ihr darauf Volumen berechnen. Das muss man ja auch erst mal wissen. Aber man kann natürlich dann auch abfragen,
08:41
ist das überhaupt ein Solid, was ich da gebaut habe? Ist das überhaupt beschlossen? Und ja, ihr konntet dann ab dem Release auch 3D-Vereinigung machen, 3D-Differenzen bilden. Weiß ich mal nicht, wer das von euch alles nutzt. Eine Funktion, die jetzt gar nicht so viel mit 3D zu tun hat, ist die Approximate Medial Axis, sagt einfach, wenn ihr jetzt zum Beispiel
09:03
Punktwolken einladet oder so, könnte man sich damit so die Kanten von den Giebel auch errechnen lassen. Also wo ist eigentlich die Mittelachse von so einem Polygon? Und ja, dann legt da einfach eine Achse durch so ein komplexes Polygon durch, wenn das dann die Dachkante ist.
09:21
Okay, es gibt auch beim Raster gibt es immer wieder neue Funktionen, die hinzukommen. Also die meisten waren jetzt im 2.1, aber es kommen immer mal wieder neue Sachen hinzu. Diese Erstellung von Overviews, also diese Pyramiden Layer, das ist eine Sache, die ging auch immer schon on the fly mit diesem Loader. Ab 2.2 gab es dann endlich auch mal eine Version, also eine Funktion, womit man das dann auch in der Datenbank ausführen konnte.
09:43
Das ist eine sehr ähnliche Funktion, also das ganze Credit Overview basiert auf ST Retail, das führt es im Hintergrund aus. Das ist eine interessante Funktion, ST as Tiny Well and Binary. Wenn man jetzt Geometrien vielleicht in der Webkarte darstellen möchte und man hat da auch wiederum sehr, sehr riesige Polygone,
10:03
die man jetzt aber natürlich mit ST Subdivide nicht unterteilen möchte, weil die ja nicht zerstückelt in der Karte angezeigt werden sollen, dann kann man mit dieser Funktion die Geodaten ziemlich stark also kompressieren, also kleiner machen. Ich habe das hier mal, ich habe so ein paar Walddaten von Vorherberg mir genommen.
10:23
Die sind in dem Original habe ich einfach mal eine Summenfunktion darauf ausgerechnet 17 MB groß. Wenn ich diese Funktion darauf ausführe, sind sie nur noch 2 MB groß. Also schon mal ein deutlicher Gewinn. So wie immer gibt es hier mehr. Es gibt auch immer so was wie Simplifizierung von Geometrien.
10:42
Gibt es schon seit vielen Jahren, aber es kommt immer mal wieder neue Algorithmus hinzu, um das Ganze noch zu verbessern. Und das ist genauso wie ST Remove Repeated Points. Das sind alles so diese Funktionen, die so auch gerade von Firmen wie Mapbox und Carto so mit reingetragen werden in Postgres, damit eben sie mehrere Ebenen berechnen können und sagen können, OK, wir wollen jetzt einfach die Geometrien immer weiter
11:02
vereinfachen pro Zoom-Stufe. Also war auch heute sehr schön zu sehen in dem Vector-Tiles-Workshop, in dem ich war, wenn man da reingezoomt hat, sieht man immer wieder so ein paar Millisekunden, wie sich die Geometrien immer wieder weiter wie die genauer werden. Und da stecken dann solche Algorithmen dahinter. Gut, Postgres 2.3 kam, weiß ich gar nicht, wie war das?
11:23
Die Release-Zyklen 2015, 2000, naja gut. Da war nicht so viel dazwischen. Bei dem Release waren so analytische Funktionen standen im Vordergrund. Da hat das Postgres-Team so einen neuen Entwickler bekommen, der hat ziemlich viele so Gruppierungs-Clustering-Funktionen entwickelt.
11:40
Eine andere Funktion, die, wenn man die Lorne-Triangulierung hat, liegt die Frage auch immer nahe, was ist mit Vorneuzellen? Kann man die denn mal? Könnte man die auch berechnen lassen? Ich habe hier mal so ein Beispiel genommen. Das sind, glaube ich, Brauereien in Tschechien und so weiter. Das sind auch nur Punktdaten. Und dann habe ich einfach mal Vorneuzellen drum herum gelegt.
12:00
Man kann sich da die Polygone ausgeben lassen, aber auch die Lines. Nee, das habe gar nicht ich gemacht, fällt mir gerade ein. Das ist hier über dem Link. Das ist noch eine Funktion, wenn man gerade vielleicht mal die Skalierung von seinem eigenen System testen möchte. Generate Points, also einfach mal eine Handvoll Punkte in so einem Polygon zu generieren. Würde man jetzt erst mal nicht auf die Idee kommen, warum das jetzt sinnvoll ist.
12:21
Aber wenn man so räumliche Abfragen untersuchen möchte, kann man einfach sagen, so in der Region generiere ich auch mal eine Billion Punkte und dann mal schauen, wie das eigene System dann noch mal damit funktioniert. Und diese ist die Points Funktion, die aus so einem Polygon einfach mal die Point zurück gibt. So, das ist immer so eine schöne Funktion. Damit kann man wahrscheinlich seinen Chef ganz schön beeindrucken,
12:42
wenn man sagt, ja, ich habe da mal eben gerade ein Cluster Chemins auf unserem Punktlehr gerechnet oder DBScan. Ich habe hier mal die Baumdaten aus Berlin genommen, die hatte ich mal für eine Klausur bei mir aufbereitet. Komischerweise fehlt da ein Teilstück, gerade Moabit, weiß auch nicht warum.
13:02
Und naja, auf jeden Fall sieht man schön den Unterschied bei Cluster Chemins. Da wird einfach alles geklastert. Das ist sehr einfacher Algorithmus, relativ schnell. DBScan nimmt dann halt die Gewichte unter den Punkten und ist dadurch ein bisschen langsamer. Aber gibt mehr realistischere Cluster zurück. Also hier sind dann mal die wesentlichen Cluster,
13:22
die mir zurückgegeben wurden, eingefärbt. Das Ganze funktioniert wie eine Window Funktion. Das kennen wahrscheinlich die meisten von euch nicht. Also das heißt, wenn ihr eine Abfrage macht gegen eure Punkte, dann werden die nicht irgendwie mit gruppiert, so wie das bei Group Bias oder bei anderen Aggregationsfunktionen, sondern es wird einfach nebenbei eine Spalte ausgegeben,
13:42
die einfach sagt, okay, dieser Punkt gehört zu diesem Cluster. Und da kann man natürlich die Denqooges so einladen und nach der Cluster-Nummer einfärben. Wichtig ist hier aber immer, diese Cluster-Algorithmen arbeiten natürlich so, dass am Anfang immer einfach random Zentren, also Zentrumspunkte, je nachdem wie viele Centren man angewählt geben hat,
14:03
in die Karte verteilt werden und dann je nach Punktdichte wandern diese Zentren immer weiter, bis das Datenset durchgelaufen ist. Also die Cluster, die da rauskommen, sind immer mal wieder leicht anders. Also natürlich konzentriere ich mich immer um die gleichen Cluster, aber ob nun ein Punkt zu dem Cluster oder zu dem Cluster gehört, kann manchmal Abbrechung geben.
14:21
Also das liegt einfach an der Natur von K-Means. So Minimum Clearance. Das sind immer, man stößt immer wieder über so Funktionen, wo man denkt, so warum ist jetzt das eigentlich nützlich? Ich habe mir einfach gesagt, also der Name ist irgendwie nicht so wirklich selbstsprechend. Ich habe mir das übersetzt, wie nah bin ich eigentlich, also weg von der Invalidität von meinem Polygon.
14:43
Also ich habe mir das hier für dieses Polygon mal errechnet. Das war auch wieder Vorwahlberg, ich habe alle Wälder einfach durchgeguckt und dieses Polygon hatte den kleinsten Wert. Also es war valide, aber es war nah dran an der Invalidität. Und wenn man sich das, da gibt es auch diese Funktionen,
15:02
Minimum Clearance Line und da kriegt man dann eine Linie ausgegeben. Und da kann man mal gucken, wo liegt die eigentlich? Da sieht man Aha, hier die, also ich habe da wirklich extrem weit reingezoomt. Und deswegen, das ist sehr nah dran, an Punkte sind zu nah beieinander, Selbstüberschneidungen usw. Also ganz interessant, wenn man mal seine Geometrien ein bisschen genau untersuchen will.
15:23
Jo, was gibt es noch? PostgresSQL hat sich natürlich auch immer weiterentwickelt und ab 96 gab es dann auch die Möglichkeit, dass man Sequential Scans parallel ausführen konnte und das versuchten sich natürlich die Postgres Entwickler für ihre Funktionen auch zu Nutze zu machen. Und ja, also jetzt kann man, im Postgres Scene ist das noch weiter verbessert worden,
15:41
in L wird es noch weiter verbessert, dass Aggregate und Joints usw. auch alle parallel funktionieren. Was gibt es noch für interessante Funktionen? Ach ja, dass man, wenn man eine Bounding Box, wenn man eine Box 3D hat und nach Geometrie umwandelt, dass da eine 3D Geometrie rauskommt. Denkt man, ist ja das normale Verhalten, was man erwarten würde,
16:02
aber in Ehe vor, war es immer eine 2D Geometrie. Da war ich auch sehr froh, dass es mal gefixt war. Okay, jetzt sind wir schon bei 2.4. Das ist der letzte bisher stabile Release. Da war das das überragende Highlight so ein bisschen Vektortiles. So viele neue Funktionen gab es im Postgres 2.4 nicht. Da gibt es zwei Funktionen, die man da beachten kann.
16:21
Das einmal STS-MVT-Geom, das ist speziell für die Geometriespalten, um Geometriespalten in Vektortiles zu überführen. Und dann kann man das zusammen mit STS-MVT, also Mapbox Vektortiles plus die Attribute rausspielen. Und man braucht dann natürlich noch ein System,
16:41
das dann die ganzen Daten nimmt und in den Webserver hochpusht. Ich habe hier auch ein paar Links angegeben, wo das jemand auch mit MAPNIC verglichen hat, also die MAPNIC Pipeline und einfach eine Pipeline mit Postgres und, ja, den, ich weiß nicht, was da verwendet wurde, Tegola vielleicht. Kann man dann mal nachverfolgen.
17:00
Also die ganzen Slides, den Link gebe ich euch am Ende von der Präsentation. Auch noch eine Funktion, die, weil ich, ich habe halt recht viel mit Trackingdaten zu tun gehabt und mich hat mal interessiert, wie, wenn ich jetzt zwei Punkte in einer Stadt angebe und die Trackingdaten zwischen diesen Punkten analysiere, wie weit weichen eigentlich bestimmte Tracks voneinander ab. Es gibt die Hausdorff-Distanz, die weiteste Entfernung.
17:21
Aber das hier ist quasi so ein Ähnlichkeitsmaß für Kurven, Frigé-Distanz kam zu. Habe ich bisher aber auch noch nicht viel Leute gesehen, die das benutzt haben. Ja, das ist natürlich auch eine Sache, die immer wieder sehr wichtig ist. Ich weiß nicht, ob sie tatsächlich erst mit diesem Release reinkamen, aber dass Postgres mittlerweile auch ganz viele andere Sprachen übersetzt ist.
17:41
Also wer jetzt zum Beispiel wie ich jetzt kein C-Entwickler ist und bei Postgres vielleicht nicht auf lange Sicht nicht Contributen kann, könnte das, also Code Contributen kann, könnte das mit so einer Übersetzung vielleicht angehen. Deutsch ist jetzt schon gelaufen, aber es gibt ja auch noch andere Projekte, wo man vielleicht noch tätig werden könnte. Okay, so ja, was hier noch eine wichtige Sache war,
18:03
nur eine Kleinigkeit, also das zum Beispiel Gleichheitsoperatoren, da hat sich ein bisschen was getan. Was ist jetzt eigentlich, was ist wirklich eine gleiche Geometrie und was nicht? Dann ja, und dass da viele Funktionen, vor allen Dingen viele Rasterfunktionen wurden als Parallel-Safe markiert, dass die auch mit parallelen Prozessierungen
18:22
von Postgres Gold verarbeitet werden können. Und eine wichtige Funktion, also wenn ihr euch sehr viel Webmapping interessiert und sagt, Mensch, es ist sehr klasse, dass es da jetzt dieses Mapbox Vector-Teils gibt, immer daran denken, dass Mapbox Vector-Teils natürlich ein bisschen Geometrien, also Verlust von Geometrien mit sich bringt.
18:40
Also wenn man wirklich eine kompression haben, starke Kompressionen haben möchte und die Geometrien sollen erhalten bleiben, dann kann man diese STS-GeoBuff-Funktionen nehmen. Also GeoBuff ist glaube ich auch eine Technologie, die Mapbox vorgestellt hat. Aber damit hat man dann keinen Geometrieverlust, keinen Datenverlust. Okay, Postgres 2.5. Ich wollte hier eigentlich nur hinterschreiben. Ich glaube, dass man im Release irgendwann vielleicht
19:02
Sommer oder Herbst, denke ich mal eher. Es ist immer ganz interessant, wenn man mal so im Track guckt, also in einem Ticket-System von Postgres, was schlummert da eigentlich noch so alles, was kommt so für neue Feature? Es ist bei Postgres jetzt nicht so, dass man, so wie bei Postgres Gold, dass man da so eine große Feature hat, die man so langsam immer weiter in den Release mit einbringt.
19:21
Ich glaube, so eine große Diskussion gibt es da gar nicht. Da läuft halt eben viel über Funding oder dass ein Entwickler eben sagt, da gibt es so ein Problem, finde ich irgendwie spannend, gucke ich mir immer an. Also ich hatte auch gestern im Gala Dinner mit einem der Entwickler gesprochen und der hat mir gesagt, ja, ich habe gestern so ein Simplifierungsalgorithmus für Kurven eingebaut, dass man, wenn man jetzt Raster zu Vektorgeometrien konvertiert,
19:43
hat man ja immer diese ekligen Treppeneffekte. Da meinte er, da hat er einen ganz einfachen Algorithmus gefunden aus den 70er Jahren, womit man das einfach, ganz einfach glätten kann. Also, und ja, hat er, das Ticket hat er gestern erstellt und hat gestern das schon in Trunk eingecheckt. Also, das kann ich natürlich jetzt schwer im Monitoren hier mit diesem Talk, aber ich habe es gleich mal mit aufgenommen.
20:02
This is Chai King Curve Smoothing. Ja, es gibt auch immer noch die Diskussion mit diesem Präzisionsmodell. Also wer vielleicht mal mit Oracle Spatial gearbeitet hat, der wird immer wissen, dass man da immer bei so Topologiefunktionen und auch so Vereinigungsfunktionen, dass man da immer eine Toleranz angeben kann. Das geht bei PostGIS nicht. Das ist zwar noch ein anderes Ticket,
20:21
das kommt gleich noch auf der nächsten Seite, aber hier hat man das überlegt, dass man das mindestens mal für Overlays und so weiter einführt. Was gibt es noch? Wie viel Zeit habe ich eigentlich noch? Schauen wir mal, ich bin eigentlich auch schon fast durch. Ja, SDS Text kennen wahrscheinlich auch ziemlich viele von euch diese Funktion, die einfach eine Geometrie
20:41
in einen Well- and Text umwandelt. Hat jetzt ab der nächsten Version wahrscheinlich einen neuen Parameter, dass man einfach die Anzahl an Dezimalzahlen abkürzen kann. Gerade wenn man jetzt vielleicht mit einem deutschen Koordinatensystem arbeitet, haben die manchmal so recht viele Koordinatenstellen. Das kann man mal ein bisschen abkürzen, wenn es einem wirklich nur in die grobe Lage geht vielleicht. Ja, es gibt für Rasta jetzt so eine Grayscale-Funktion.
21:03
Also bei Rasta gibt es immer interessante neue Tickets, die in der Pipeline immer sind. So, und ein Meilstein, den man in diesem Ticketsystem auch immer findet, der hieß mal lange PostGIS Future. Da hat man immer alles, was man irgendwie jetzt nicht in den Release mit reinkam, da reingepackt. Irgendwann wurde das dann einfach umgenannt in Fund Me
21:22
und da sagen dann eben die Leute auch, ja, ich habe da eine Idee oder ich habe da vielleicht schon einen Patch fertig, aber man müsste das mehr testen und das ist halt sehr zeitaufwendig und das könnte man ja vielleicht unterstützen mit ein bisschen Funding. Also es sind ein paar sehr alte Tickets schon drinnen. Also wie könnte man zum Beispiel das, also eine so eine Frage,
21:41
wie jetzt Postgresql designatives, also deklaratives Partitioning, wie könnte man das in PostGIS irgendwie nutzen, dass man räumliches Partitioning hat, dass man einen neuen Indexart hat. Also es gibt ja diese räumlichen Indizes in PostGIS, sind ja immer GIST-Indizes, aber es gibt ja auch SP-GIST von Postgresql und da gibt es auch schon lange eine Diskussion, ob man das irgendwie nutzen könnte.
22:00
Toleranz und Präzision habe ich schon gesagt, dass man so Vereinigungen und Intersektionen und so weiter mit dem Geografiedatentyp machen kann in PostGIS, ist auch so eine Sache, wo man denken würde, das gibt es noch nicht, okay und sollte man vielleicht auch irgendwie mal fanden, dass das mal reinkommt, dass man Raster schärfen kann oder blurren kann, das ist auch noch so ein Ticket,
22:21
kernel density estimation auf Raster und so weiter. Also da finden Sie noch einige mehr Tickets. Ich habe das einfach mal so aufgelistet. Wer das Ganze, hier ist noch eine Einslide, was ich noch gefunden hatte. Google Summer of Code hat jetzt ein Projekt, dass man den pga-admin-4 mal erweitert um einen Geo-Viewer, dass man sich seine Tabellen auch einfach mal direkt
22:40
schnell anzeigen lassen kann. Wer jetzt schon mit dem DB-Manager in QGIS gearbeitet hat, wird sich natürlich denken, das geht ja alles schon längst. Wer das noch nicht gemacht hat, also wenn PostGIS arbeitet, aber auch lieber eigentlich mit QGIS alles macht und immer alles grafisch haben möchte, nutzt diesen DB-Manager. Da habt ihr nämlich auch eine SQL-Konsole und könnt einfach die ganzen SQL-Befehle auch einfach dort eingeben und direkt einfach das Ergebnis als Layer einbinden.
23:01
Ihr müsst nicht irgendwelche Tabellen, Views erstellen, das kann man alles on the fly machen. Das ist auch immer die erste Sache, die ich den Studenten gezeigt habe. Das ist noch eine Sache, wenn man sich denkt, wie kann ich denn das Ganze ein bisschen finanzieren. Das ist jetzt vielleicht ein Weg, wie das gehen könnte. Das hatte ich vor kurzem gesehen, dass die Regina Obie,
23:20
die ja so eine der Hauptentwicklerinnen ist und auch sehr viel für das Projekt tut, also auch gerade die ganzen Distributionen auch für die verschiedenen Betriebssysteme alle bereitstellt und so weiter. Dann hat sie irgendwann mal gesagt, dass irgendwie verschwindet das ganz schön viel Zeit und das steht irgendwie nicht mehr in dem Verhältnis zu lebenszeitlich da eingeben muss und vielleicht auch finanzielle Absicherung.
23:40
Man kann sie hier über dieses Patreon unterstützen. Das habe ich einfach mal gemacht. 10 Euro im Monat. Ich bin immer so ein Typ, wenn ich in der Fußgängerzone bin, nämlich da Leute anquatschen und ich irgendwas spenden soll, ich sage immer ja. Dann habe ich gesagt, hier kann ich mal 10 Euro auch mal für was interessieren, was mir vielleicht auch mehr am Herzen liegt als jetzt die ganzen anderen Projekte.
24:01
Die auch wichtig sind. Es gibt noch eine ganze Reihe weiterer Third-Party-Projekte, kann man es glaube ich nennen. Allen voran natürlich Pege Routing, um Routing in Postgres zu ermöglichen. PGPoint Cloud, um Punktwolken einzuladen.
24:20
Die ganzen OSM Importer. OGR Foreign Data Rapper. Also Foreign Data Rapper habe ich jetzt kaum erwähnt. Das ist halt auch noch so eine Technologie, die in PostgreSQL mit den Jahren hinzugekommen ist, wo man eben fremde Datenquellen über PostgreSQL ansprechen kann. Und jetzt natürlich diese OGR2OGR-Kennung, wahrscheinlich die meisten von euch, da könnt ihr einfach über diesen
24:41
Foreign Data Rapper euch verschiedenste Quellen, also File-Formate, die OGR2OGR anbietet. Einfach ihr stellt Fremden, also Foreign Tables in PostgreSQL und könnt dann einfach im Hintergrund diese quasi on-the-fly einbinden. Also die Daten werden nicht in eurer Datenbank gespeichert. Die Abfragen werden dann über diesen Foreign Data Rapper an quasi
25:01
das Zielformat geschickt. Also es geht auch mit Postgres zu Oracle und zu Twitter-Daten. Es gibt zahlreiche Foreign Data Rapper und mit OGR2OGR könnte man auch ein WFS abfragen in PostgreSQL. Das ist auch ziemlich cool. Vector Tiles, hatte ich eben gerade schon gesagt, da gibt es mittlerweile, weil es jetzt diese Funktionen gibt
25:22
und es gibt Tools, die diese Funktionen schon nutzen und welche, die sie noch nicht nutzen, aber vielleicht überlegen die zu nutzen. Zum Beispiel Tegular, T-Rex und Tilesplash. Die 3-D City Database habe ich schon häufiger vorgestellt, ein Tool, mit dem man 3-D Stadtmodelle verwalten kann. Und wenn ihr noch irgendwie so ein cooles eigenes Projekte, was auf Postgres aufsetzt, sagt es mir, dann füge ich das auch hier ein.
25:42
Also es gibt wahrscheinlich für jede Domäne, in jeder Domäne noch Special Tools, die Leute da entwickelt haben. Okay, ja, ich bin da doch in der Zeit geblieben. Wer hätte das gedacht? Ich danke auf jeden Fall dem ganzen Projektteam von Postgres, den ganzen Entwicklern und den ganzen Entwicklern auch von PostgreSQL und auch den Communities hinter Geos,
26:01
Gedahl und Proj, wie ich jetzt gelernt habe. Man sagt nicht mehr Proj vor. Und all den Firmen, die da spenden und Organisationen und natürlich den Individuen und euch, den Nutzern, die es nutzen, hilft das Leben, das Projekt natürlich am Leben zu halten und weiterzuentwickeln. Vielen Dank. Vielen Dank, Felix Kunde.
26:26
Ja, vielen Dank. Sehr spannender Talk, sehr praktische Tipps hier. Genau das Richtige nach Mitte. Wir haben jetzt noch kurz Gelegenheit für ein paar Fragen. Noch ein paar Minuten. Ja, ich eröffne die Fragerunde.
26:43
Keine Nachfragen? Ja, bitte. Felix, erstmal vielen Dank für den Talk, sehr cool. Ich habe eine Frage. Es gibt ja jetzt seit einer Weile den PgAdmin 4 und da wollte ich fragen, wie du da die Zukunft siehst.
27:01
Oder ob du den gerne benutzt? Ich habe schon sehr oft bei Twitter den Suchbegriff eingegeben. PgAdmin 4 sucks. Also, ich glaube, das sagt alles. Also, ich bin da noch nicht so ganz mit warm geworden. Ich glaube, er ist jetzt schon ein bisschen robuster geworden.
27:21
Am Anfang war es ja wirklich eine Katastrophe. Aber er ist auch immer noch ziemlich langsam. Also, ich habe mir mittlerweile schon andere Clients angeguckt. Debever oder OmniDB und so. ja. PgAdmin 3 war jetzt auch nicht so, glaube ich, das Stellaratool. Aber, ja, man hat sich mit die Jahre dran gewöhnt.
27:44
Also, ja. Super. Vielen lieben Dank. Ich denke, wir haben alle viel schon mit Postgäste zu tun gehabt. Wird wahrscheinlich nachher sich noch Gelegenheit ergeben, da näher noch mal drauf einzugehen im privaten Talk. Gleich geht es weiter mit Pyrmin Calbera.
28:02
Und wir fangen an um 14.15 Uhr.