-
TECHNISCHES GEBIET
-
Die vorliegende Erfindung betrifft allgemein Datenbanksysteme und insbesondere die Verarbeitung großer Datenmengen in Datenbanksystemen.
-
HINTERGRUND
-
Raumdatensätze können Eigenschaften einer geografischen Einheit (z.B. eines Gebäudes, Sees, Bergs oder einer Gemeinde usw.) wie zum Beispiel Standort, zugehöriger Zeitstempel, Größe usw. darstellen. Darüber hinaus können kontinuierliche Größen wie zum Beispiel Temperatur, Wind, Geschwindigkeit usw. in Raum und Zeit indiziert werden. Geografisch-räumliche Daten könnten in zwei Arten kategorisiert werden: „Raster“ und „Vektor“. Die erste Kategorie entspricht einem (regelmäßigen) Gitter aus geografisch-räumlichen Koordinaten, die entsprechende Werte im Zusammenhang mit zum Beispiel Lichtreflexionsintensitäten eines Satellitenbildes aufweisen. Die letztgenannte Kategorie betrifft einzelne Koordinaten oder eine lineare, unregelmäßige, offene/geschlossene Abfolge davon, die zugehörige Werte aufweisen, zum Beispiel unregelmäßig verteilte Wetterstationen, die die Temperatur messen, Straßen mit einer bestimmten Verkehrsdichte oder Landkreise mit einer bestimmten (durchschnittlichen) Bevölkerungsdichte.
-
Raumdatensysteme wie zum Beispiel ein geografisches Informationssystem (GIS) können geografische oder räumliche Datensätze nehmen, die unterschiedliche Projektionen und Auflösungen (im Falle von Rasterdaten) aufweisen, und diese als überlappende Schichten anzeigen. Üblicherweise werden mehrere Berechnungswiederholungen und Neuprojektionen auf mehreren Ebenen der Datensätze durchgeführt, um eine überlappende Ausrichtung zu erhalten. Die überlappenden Datensätze werden anschließend auf einem Festplattenlaufwerk oder in einer relationalen Datenbank gespeichert, die schnell mit großen Datenmengen gefüllt werden kann. Die Analyse derartig großer Datenmengen insbesondere hinsichtlich ihrer Kreuzkorrelation in Raum und Zeit wird manchmal als „Big (Geo-Spatial) Data Analytics“ bezeichnet.
-
Die Verwaltung derartiger Daten ist wegen der unterschiedlichen Formate und der zu verwaltenden großen Datenmengen problematisch. In der Technik besteht daher ein Bedarf zu Lösung des oben genannten Problems.
-
KURZDARSTELLUNG
-
Aus einem ersten Blickwinkel betrachtet stellt die vorliegende Erfindung ein Datenbanksystem bereit, das aufweist: ein Verarbeitungs-Subsystem, das eine elektronische Hardwaresteuereinheit umfasst, die erste formatierte Daten empfängt; ein elektronisches Dateiformatierungs-Subsystem, das eine elektronische Hardwaresteuereinheit umfasst, die den ersten formatierten Daten Koordinatenwerte zuordnet, die einem zweiten Datenformat entsprechen, und eine Datendatei mit dualem Format erzeugt, die die ersten formatierten Daten mit den Koordinatenwerten zusammenführt, die einem zweiten Datenformat entsprechen; und ein Speicher-Subsystem, das eine Datenspeichereinheit umfasst, die so eingerichtet ist, dass die Datendatei mit dualem Format gespeichert wird.
-
Aus einem weiteren Blickwinkel betrachtet stellt die vorliegende Erfindung ein mittels Computer realisiertes Verfahren zum Betreiben eines Datenbanksystems bereit, wobei das mittels Computer realisierte Verfahren aufweist: ein Empfangen erster formatierter Daten bei einem Verarbeitungs-Subsystem, das eine elektronische Hardwaresteuereinheit umfasst; unter Verwendung eines elektronischen Dateiformatierungs-Subsystems ein Zuweisen von Koordinatenwerten, die einem zweiten Datenformat entsprechen, zu den ersten formatierten Daten; unter Verwendung des Dateiformatierungs-Subsystems ein Erzeugen einer Datendatei mit dualem Format, die die ersten formatierten Daten mit den Koordinatenwerten korreliert, die einem zweiten Datenformat entsprechen; und ein Speichern der Datendatei mit dualem Format in einer Datenspeichereinheit.
-
Aus einem weiteren Blickwinkel betrachtet stellt die vorliegende Erfindung ein mittels Computer realisiertes Verfahren zum Betreiben eines Datenbanksystems bereit, um ein Abfrageergebnis zu erzeugen, wobei das Verfahren aufweist: über ein Dateiformatierungs-Subsystem, das eine elektronische Hardwaresteuereinheit umfasst, ein Zuweisen von Koordinatenwerten, die einem ersten Datenformat (Raster) entsprechen, zu Datenobjekten, die ein Anfangsdatensatz enthalten sind, der ein zweites Datenformat (Vektor) aufweist, das sich vom ersten Datenformat unterscheidet; unter Verwendung eines Dateiformatierungs-Subsystems ein Erzeugen einer Datendatei mit dualem Format, die die Datenobjekte, die das zweite Datenformat aufweisen, mit den Koordinatenwerten korreliert, die dem ersten Datenformat entsprechen, um eine Datendatei mit dualem Format zu erzeugen; ein Speichern der Datendatei mit dualem Format in einer Datenspeichereinheit; ein Empfangen einer Abfrage in Bezug auf mindestens ein Datenobjekt, das in dem Anfangsdatensatz enthalten ist, wobei das mindestens eine Datenobjekt das zweite Datenformat aufweist; ein Erkennen mindestens einer Datendatei mit dualem Format, die das mindestens eine Datenobjekt umfasst, das das zweite Datenformat aufweist, aus einer Mehrzahl von Dateien mit dualen Daten, die in der Datenspeichereinheit gespeichert sind; und ein Ausgeben des mindestens einen Datenobjekts auf der Grundlage der entsprechenden Koordinatenwerte, die in der mindestens einen Datendatei mit dualem Format gespeichert sind.
-
Aus einem weiteren Blickwinkel betrachtet stellt die vorliegende Erfindung ein mittels Computer realisiertes Verfahren zum Betreiben eines Datenbanksystems bereit, um ein Abfrageergebnis zu erzeugen, wobei das Verfahren aufweist: ein Überlagern einer Mehrzahl von Rastergitterzellen über einen Anfangs- Vektordatensatz unter Verwendung eines Verarbeitungs-Subsystems, das eine elektronische Hardwaresteuereinheit umfasst, wobei jede Rastergitterzelle einen ihr zugewiesenen Satz Gitterkoordinaten aufweist; über ein Dateiformatierungs-Subsystem, das mit einer elektronischen Hardwaresteuereinheit realisiert ist, ein Erzeugen einer Datei mit zusammengeführten Daten, die sowohl einen ausgewählten Satz Gitterkoordinaten umfasst, die mindestens einer Rastergitterzelle entsprechen, die ein Vektorobjekt überlagert, das der Vektordatensatz umfasst, als auch Objektkennzeichnungsinformationen, die das Vektorobjekt kennzeichnen; ein Empfangen einer Abfrage in Bezug auf mindestens ein Zielvektorobjekt, das der Vektordatensatz umfasst; über ein Verarbeitungs-Subsystem, das eine elektronische Hardwaresteuereinheit umfasst, ein Durchführen eines Bilderkennungsvorgangs, der auf der Grundlage des Zielvektorobjekts ein Referenzvektorobjekt ermittelt und auf der Grundlage eines Vergleichs zwischen dem Referenzvektorobjekt und der Mehrzahl von Gitterzellen mindestens einen Satz Gitterkoordinaten ermittelt, die dem Vektorzielobjekt entsprechen; und ein Ausgeben der Objektkennzeichnungsinformationen aus der Datei mit zusammengeführten Daten, in der der ausgewählte Satz Gitterkoordinaten gespeichert ist.
-
Aus einem weiteren Blickwinkel betrachtet stellt die vorliegende Erfindung ein mittels Computer realisiertes Verfahren zum Betreiben eines Datenbanksystems bereit, um ein Abfrageergebnis zu erzeugen, wobei des Verfahren aufweist: über ein Verarbeitungs-Subsystem, das eine elektronische Hardwaresteuereinheit umfasst, ein Erzeugen eines Gittersystems, das eine Mehrzahl von Gitterzellen umfasst, und Überlagern der Gitterzellen über einen Anfangsdatensatz, der ein erstes Datenformat aufweist, wobei jede Gitterzelle Daten darstellt, die ein zweites Datenformat aufweisen, und sie einen ihr zugewiesenen Satz Gitterkoordinaten aufweist; über ein Dateiformatierungs-Subsystem, das eine elektronische Hardwaresteuereinheit umfasst, ein Zuweisen von Koordinatenwerten, die dem zweiten Datenformat entsprechen, zu Datenobjekten, die ein Anfangsdatensatz enthalten sind, der das erste Datenformat aufweist; in einer Datendatei mit dualem Format ein Speichern von Kennzeichnungsinformationen eines ausgewählten Datenobjekts, das das erste Datenformat aufweist, mit einem ausgewählten Satz Koordinaten, die einer ausgewählten Gitterzelle entsprechen, die das ausgewählte Datenobjekt überlagert; ein Empfangen einer Abfrage in Bezug auf mindestens ein Zieldatenobjekt, das das zweite Datenformat aufweist, und auf der Grundlage der Abfrage ein Erzeugen eines Referenzdatenobjekts, das das erste Datenformat aufweist; auf der Grundlage eines Vergleichs zwischen dem Referenzdatenobjekt und der Mehrzahl von Gitterzellen ein Ausgeben des mindestens einen Zieldatenobjekts, das das zweite Datenformat aufweist.
-
Aus einem weiteren Blickwinkel betrachtet stellt die vorliegende Erfindung ein Computerprogrammprodukt zum Betreiben einer Datenbank bereit, wobei das Computerprogrammprodukt ein durch Computer lesbares Speichermedium aufweist, das durch eine Verarbeitungsschaltung gelesen werden kann und auf dem Anweisungen zur Ausführung durch die Verarbeitungsschaltung gespeichert sind, um ein Verfahren zum Durchführen der Schritte der Erfindung durchzuführen.
-
Aus einem weiteren Blickwinkel betrachtet stellt die vorliegende Erfindung ein Computerprogramm bereit, das auf einem durch Computer lesbaren Medium gespeichert ist und in den internen Hauptspeicher eines Digitalcomputers geladen werden kann, das Softwarecodeabschnitte aufweist, die bei Ausführung des Programms auf einem Computer zum Durchführen der Schritte der Erfindung dienen.
-
Ausführungsformen der vorliegenden Erfindung sind auf ein Datenbanksystem gerichtet. Das Datenbanksystem umfasst ein Verarbeitungs-Subsystem, das eine elektronische Hardwaresteuereinheit aufweist, die erste formatierte Daten empfängt, und ein elektronisches Dateiformatierungs-Subsystem, das eine elektronische Hardwaresteuereinheit aufweist, die den ersten formatierten Daten Koordinatenwerte zuweist, die einem zweiten Datenformat entsprechen. Das Dateiformatierungs-Subsystem erzeugt eine Datendatei mit dualem Format, die die ersten formatierten Daten mit den Koordinatenwerten zusammenführt, die einem zweiten Datenformat entsprechen. Das Datenbanksystem umfasst ferner ein Speicher-Subsystem, das eine Datenspeichereinheit aufweist, die so eingerichtet ist, dass die Datendatei mit dualem Format gespeichert wird. Ausführungsformen der vorliegenden Erfindung stellen ein mittels Computer realisiertes Verfahren zum Betreiben eines Datenbanksystems bereit.
-
Ein nicht einschränkendes beispielhaftes mittels Computer realisiertes Verfahren zum Betreiben eines Datenbanksystems umfasst ein Empfangen erster formatierter Daten bei einem Verarbeitungs-Subsystem, das eine elektronische Hardwaresteuereinheit umfasst, und unter Verwendung eines elektronischen Dateiformatierungs-Subsystems ein Zuweisen von Koordinatenwerten, die einem zweiten Datenformat entsprechen, zu den ersten formatierten Daten. Das Verfahren weist ferner unter Verwendung des Dateiformatierungs-Subsystems ein Erzeugen einer Datendatei mit dualem Format auf, die die ersten formatierten Daten mit den Koordinatenwerten korreliert, die einem zweiten Datenformat entsprechen, und ein Speichern der Datendatei mit dualem Format in einer Datenspeichereinheit.
-
Ein weiteres nicht einschränkendes, mittels Computer realisiertes Verfahren zum Betreiben eines Datenbanksystems wird bereitgestellt, um ein Abfrageergebnis zu erzeugen. Das Verfahren weist über ein Dateiformatierungs-Subsystem, das eine elektronische Hardwaresteuereinheit umfasst, ein Zuweisen von Koordinatenwerten, die einem ersten Datenformat (Raster) entsprechen, zu Datenobjekten auf, die in einem Anfangsdatensatz enthalten sind, der ein zweites Datenformat (Vektor) aufweist, das sich vom ersten Datenformat unterscheidet. Das Verfahren umfasst ferner unter Verwendung eines Dateiformatierungs-Subsystems ein Erzeugen einer Datendatei mit dualem Format, die die Datenobjekte, die das zweite Datenformat aufweisen, mit den Koordinatenwerten korreliert, die dem ersten Datenformat entsprechen, um eine Datendatei mit dualem Format zu erzeugen. Das Verfahren umfasst ferner ein Speichern der Datendatei mit dualem Format in einer Datenspeichereinheit und ein Empfangen einer Abfrage in Bezug auf mindestens ein Datenobjekt, das in dem Anfangsdatensatz enthalten ist. Das mindestens eine Datenobjekt weist das zweite Datenformat auf. Das Verfahren umfasst ferner ein Erkennen mindestens einer Datendatei mit dualem Format, die das mindestens eine Datenobjekt umfasst, das das zweite Datenformat aufweist, aus einer Mehrzahl von Dateien mit dualen Daten, die in der Datenspeichereinheit gespeichert sind, und ein Ausgeben des mindestens einen Datenobjekts auf der Grundlage der entsprechenden Koordinatenwerte, die in der mindestens einen Datendatei mit dualem Format gespeichert sind.
-
Ein weiteres nicht einschränkendes, mittels Computer realisiertes Verfahren zum Betreiben eines Datenbanksystems wird bereitgestellt, um ein Abfrageergebnis zu erzeugen. Das Verfahren umfasst ein Überlagern einer Mehrzahl von Rastergitterzellen über einen Anfangs-Vektordatensatz unter Verwendung eines Verarbeitungs-Subsystems, das eine elektronische Hardwaresteuereinheit umfasst. Jede Rastergitterzelle weist einen ihr zugewiesenen Satz Gitterkoordinaten auf. Das Verfahren umfasst ferner über ein Dateiformatierungs-Subsystem, das mit einer elektronischen Hardwaresteuereinheit realisiert ist, ein Erzeugen einer Datei mit zusammengeführten Daten, die sowohl einen ausgewählten Satz Gitterkoordinaten umfasst, die mindestens einer Rastergitterzelle entsprechen, die ein Vektorobjekt überlagert, das der Vektordatensatz umfasst, als auch Objektkennzeichnungsinformationen, die das Vektorobjekt kennzeichnen. Das Verfahren umfasst ferner ein Empfangen einer Abfrage in Bezug auf mindestens ein Zielvektorobjekt, das der Vektordatensatz umfasst. Das Verfahren umfasst ferner über ein Verarbeitungs-Subsystem, das eine elektronische Hardwaresteuereinheit umfasst, ein Durchführen eines Bilderkennungsvorgangs, der auf der Grundlage des Zielvektorobjekts ein Referenzvektorobjekt ermittelt und auf der Grundlage eines Vergleichs zwischen dem Referenzvektorobjekt und der Mehrzahl von Gitterzellen mindestens einen Satz Gitterkoordinaten ermittelt, die dem Vektorzielobjekt entsprechen. Das Verfahren umfasst ferner ein Ausgeben der Objektkennzeichnungsinformationen aus der Datei mit zusammengeführten Daten, in der der ausgewählte Satz Gitterkoordinaten gespeichert ist.
-
Ein weiteres nicht einschränkendes, mittels Computer realisiertes Verfahren zum Betreiben einer Datenbank wird bereitgestellt, um ein Abfrageergebnis zu erzeugen. Das Verfahren umfasst über ein Verarbeitungs-Subsystem, das eine elektronische Hardwaresteuereinheit umfasst, ein Erzeugen eines Gittersystems, das eine Mehrzahl von Gitterzellen umfasst, und ein Überlagern der Gitterzellen über einen Anfangs-Datensatz, der ein erstes Datenformat aufweist. Jede Gitterzelle stellt Daten dar, die ein zweites Datenformat aufweisen und einen ihnen zugewiesenen Satz Gitterkoordinaten aufweisen. Das Verfahren umfasst ferner über ein Dateiformatierungs-Subsystem, das eine elektronische Hardwaresteuereinheit umfasst, ein Zuweisen von Koordinatenwerten, die dem zweiten Datenformat (Raster) entsprechen, zu Datenobjekten, die in einem Anfangsdatensatz enthalten sind, der das erste Datenformat (Vektor) aufweist. Das Verfahren umfasst ferner in einer Datendatei mit dualem Format ein Speichern von Kennzeichnungsinformationen eines ausgewählten Datenobjekts, das das erste Datenformat aufweist, mit einem ausgewählten Satz Koordinaten, die einer ausgewählten Gitterzelle entsprechen, die das ausgewählte Datenobjekt überlagert. Das Verfahren umfasst ferner ein Empfangen einer Abfrage in Bezug auf mindestens ein Zieldatenobjekt, das das zweite Datenformat aufweist, und auf der Grundlage der Abfrage ein Erzeugen eines Referenzdatenobjekts, das das erste Datenformat aufweist. Das Verfahren umfasst ferner ein Ausgeben des mindestens einen Zieldatenobjekts, das das zweite Datenformat aufweist, auf der Grundlage eines Vergleichs zwischen dem Referenzdatenobjekt und der Mehrzahl von Gitterzellen.
-
Eine weitere nicht einschränkende Ausführungsform stellt ein Computerprogrammprodukt zum Betreiben eines Datenbanksystems bereit. Das Computerprogrammprodukt weist ein durch Computer lesbares Speichermedium auf, das darauf verkörperte Programmanweisungen aufweist. Die Programmanweisungen sind durch eine Verarbeitungsschaltung ausführbar, um die Verarbeitungsschaltung zu veranlassen, formatierte Daten in einem Verarbeitungs-Subsystem zu empfangen, das eine elektronische Hardwaresteuereinheit umfasst, und unter Verwendung eines elektronischen Dateiformatierungs-Subsystems Koordinatenwerte, die einem zweiten Datenformat entsprechen, über ein Dateiformatierungs-Subsystem den ersten formatierten Daten zuzuweisen. Die Anweisungen sind ferner ausführbar, um unter Verwendung des Dateiformatierungs-Subsystems eine Datendatei mit dualem Format zu erzeugen, die die ersten formatierten Daten mit den Koordinatenwerten korreliert, die einem zweiten Datenformat entsprechen, und die Datendatei mit dualem Format in einer Datenspeichereinheit zu speichern.
-
Weitere technische Merkmale und Vorteile werden durch die Techniken der vorliegenden Erfindung realisiert. Ausführungsformen und Aspekte der Erfindung werden hierin eingehend beschrieben und sind als Teil des beanspruchten Gegenstands zu betrachten. Zum besseren Verständnis siehe die ausführliche Beschreibung und die Zeichnungen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die hierin beschriebenen Einzelheiten und ausschließlichen Rechte sind in den Ansprüchen im Anschluss an die Beschreibung in besonderer Weise hervorgehoben und eindeutig beansprucht. Die vorstehenden und andere Merkmale und Vorteile einer oder mehrerer Ausführungsformen der Erfindung werden anhand der folgenden eingehenden Beschreibung deutlich, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist, wobei:
- 1 ein Blockschema eines Datenbanksystems gemäß Ausführungsformen der Erfindung bildlich darstellt;
- 2 eine schematische Darstellung wiedergibt, die eine Korrelation zwischen einer Raum-Zeit-Dichte (ρf) und einem Raum-Zeit-„Volumen“ (dnΔ t') für Raum-Zeit-Abfragen gemäß Ausführungsformen der Erfindung veranschaulicht;
- 3 ein Schema ist, das den Prozess des Zusammenführens gefilterter Rasterdaten mit Vektordaten gemäß Ausführungsformen der Erfindung veranschaulicht;
- 4A ein Verfahrensflussdiagramm darstellt, das Operationen veranschaulicht, die durch das Datenbanksystem durchgeführt werden, um gemäß Ausführungsformen der Erfindung „vektorisierte Rasterdaten“ aus georeferenzierten Rasterdaten zu erhalten;
- 4B eine Fortsetzung von 4A ist;
- 5A ein Verfahrensflussdiagramm darstellt, das Operationen veranschaulicht, die durch das Datenbanksystem durchgeführt werden, um gemäß Ausführungsformen der Erfindung auf der Grundlage eine Bilderkennungsanalyse „vektorisierte Rasterdaten“ aus georeferenzierten Rasterdaten zu erhalten;
- 5B eine Fortsetzung von 5A ist;
- 6A ein Verfahrensflussdiagramm darstellt, das Operationen veranschaulicht, die durch das Datenbanksystem durchgeführt werden, um gemäß Ausführungsformen der Erfindung „gerasterte Vektordaten“ aus georeferenzierten Vektordaten zu erhalten;
- 6B eine Fortsetzung von 6A ist;
- 7 eine Cloud-Computing-Umgebung gemäß Ausführungsformen der Erfindung darstellt;
- 8 Abstraktionsmodellschichten gemäß Ausführungsformen der Erfindung zeigt; und
- 9 eine Datenaustauschvorrichtung gemäß Ausführungsformen der vorliegenden Erfindung zeigt.
-
Die hierin abgebildeten Schemata dienen der Veranschaulichung. Es sind viele Abweichungen von dem Schema oder den hierin beschriebenen Operationen möglich, ohne vom Schutzbereich der Erfindung abzuweichen. Beispielsweise können die Aktionen in einer anderen Reihenfolge ausgeführt werden, oder es können Aktionen hinzugefügt, gelöscht oder abgeändert werden. Außerdem beschreiben der Begriff „verbunden“ und Variationen davon ein Aufweisen eines Datenaustauschpfades zwischen zwei Elementen und schließt nicht stillschweigend eine direkte Verbindung zwischen den Elementen ohne zwischengeschaltete Elemente/Verbindungen zwischen ihnen ein. Alle diese Varianten werden als Teil der Beschreibung betrachtet.
-
In den beigefügten Figuren und der folgenden ausführlichen Beschreibung der beschriebenen Ausführungsformen sind die in den Figuren veranschaulichten verschiedenen Elemente mit zwei- oder dreistelligen Bezugsnummern bereitgestellt. Von wenigen Ausnahmen abgesehen entsprechen die am weitesten links stehenden Ziffern jeder Bezugsnummer der Figur, in der ihr Element zum ersten Mal veranschaulicht ist.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Der Kürze wegen sind hierin herkömmliche Techniken im Zusammenhang mit der Datenbankverarbeitung und -analyse unter Umständen nicht ausführlich beschrieben. Darüber hinaus können die hierin beschriebenen verschiedenen Operationen und Prozessschritte in eine umfangreichere Prozedur oder in einen umfangreicheren Prozess einbezogen werden, die zusätzliche Schritte oder eine zusätzliche Funktionalität aufweisen, die hierin im Detail nicht beschrieben ist. Zum Beispiel sind einige Datenanalyseoperationen wie beispielsweise Bilderkennung allgemeinbekannt, sodass im Interesse der Kürze hierin viele herkömmliche Schritte nur kurz erwähnt oder ganz weggelassen werden, um die allgemeinbekannten Prozessdetails nicht aufzuführen.
-
Bei einem Überblick über Technologien, die besonders relevant für Aspekte verschiedener nicht einschränkender Ausführungsformen der Erfindung sind, wird deutlich, dass eine globale Analyse geografisch-räumlicher Informationen aus verschiedenen Quellen wie zum Beispiel Satelliten, Wetterstationen, LiDAR-Abtastungen (LiDAR = Light Detection and Ranging), Vermessungen usw. ein Verarbeiten enormer Datenmengen (z.B. von Terabytes oder Petabytes von Daten)erfordert. Beispielsweise erzeugen die Landsat-8-Satelliten der National Aeronautics and Space Administration (NASA) Daten in der Größenordnung eines halben Terabytes pro Tag. Das Sentinel-2-Satellitenprogramm der Europäischen Südsternwarte (European Southern Observatory, ESO) kann bei einer Bildauflösung von 10 Metern eine Pixeldichte erzeugen, die einer um einen Faktor von ca. 10 erhöhten räumlichen Auflösung entspricht. DigitalGlobe-Satelliten wie zum Beispiel WorldView-4 können die räumliche Auflösung um das ungefähr 100-Fache erhöhen, indem sie Bilder mit einer Auflösung von weniger als einem Meter bereitstellen.
-
Räumliche Informationen werden herkömmlicherweise als Daten auf Rasterbasis erhalten, ergänzt durch Vektorformate. Zu Beispielen von Rasterdaten gehören Wetterdaten, Temperaturdaten, Bodendaten, topographische Daten, Intensitäten von Rot, Grün, Blau oder das Nahinfrarotband des elektromagnetischen Spektrums, ohne auf diese beschränkt zu sein. Rasterdaten können einen geografischen Bereich als Fläche darstellen, die in ein regelmäßiges Gitter aus Zellen unterteilt ist. Rastermodelle sind zum Speichern von Daten nützlich, die sich fortlaufend ändern, zum Beispiel bei einer Luftaufnahme, einem Satellitenbild, einer Oberfläche chemischer Konzentrationen oder einer Oberfläche von Bodenerhebungen.
-
Vektordaten stellen Daten in einem geografischen Bereich dar, wobei Punkte, Linien und Polygone verwendet werden. Vektormodelle sind zum Speichern von Daten nützlich, die eigenständige Umgrenzungen aufweisen, zum Beispiel Ländergrenzen, Landparzellen und Straßen innerhalb und außerhalb von Ortschaften.
-
Die Quell- bzw. Ursprungsdaten (z.B. einzelne Datenebenen) für geografische Datensätze oder räumliche Datensätze sind in unzähligen Datenbanken untergebracht, wobei jede Datenbank ihre eigene Abfragesprache und eigenen Datenabruftools aufweist. Nach der Speicherung als überlappter Raumdatensatz ist die Durchsuchung und erneute Integration der einzelnen Schichten unter Verwendung aufeinanderfolgender Abfragen unter Umständen schwierig. In vielen Fällen führt ein Datenabruf zu einem zeitraubenden Prozess oder sind Daten sogar unauffindbar und es sind daher umfangreiche Vorbereitungen erforderlich, bevor eine neue Abfrage durchgeführt werden kann.
-
Als Beispiel soll die landesweite Bodendatenbank der USA (SSURGO) betrachtet werden, die festgelegte Datenextraktionsumgrenzungen (z.B. polygonförmige Umgrenzungen) enthält, die eine große Anzahl von Attributen enthalten, die in Bezug auf die Bodentiefen aufgelöst sind. Die reine Dateigröße der Datenbank beträgt ca. 70 Gigabyte (GB). Um auf die Bodeneigenschaften zuzugreifen, werden Datentabellen in einer SQL-artigen Weise (SQL = Structured Query Language, strukturierte Abfragesprache) verbunden, was zu einer exponentiellen Zunahme von Informationen in Bezug auf die Anzahl verbundener Tabellen führen kann. Bei einem weiteren Beispiel handelt es sich um häufiges Veröffentlichen von demografiebezogenen Informationen und Vektordaten in Bezug auf die Humaninfrastruktur durch die US-Regierung sowie durch Projekte auf Crowd-Basis wie z.B. OpenStreetMap.
-
Die herkömmliche Erkennung von Daten oder Dokumenten beruht auf Schlüsselwort-Abfragesuchen. Zu einem Schlüsselwort-Abfragesuche- und Abrufprozess gehören in der Regel ein Übergeben einer geringen Menge von Schlüsselwörtern und ein Zurückgeben einer Liste von Dokumenten oder eines Datensatzes, die in der Reihenfolge ihrer Relevanz für die Abfrage (oftmals auf der Grundlage einer Beliebtheits- und Seiteneinstufung) eingestuft sind. Da jedoch das in Datenbanken enthaltene Datenvolumen zunimmt, nimmt der Bereich der zurückgegebenen Suchergebnisse ab. Infolgedessen muss eine weitere Analyse durchgeführt werden, um die Suchergebnisse einzuschränken, bevor die Daten oder Dokumente erkannt werden können, auf die die Suche abzielt.
-
Um ein Auffinden und Extrahieren von Daten aus Datenbanken zu erleichtern, die umfangreiche Datenmengen enthalten, wurden Frage-Antwort-Systeme (QA-Systeme, QA = Question answering) entwickelt. Bei diesem QA-Systemen werden weiterentwickelte Datenverarbeitungstechniken eingesetzt, darunter, ohne auf diese beschränkt zu sein, Technologien zur Verarbeitung natürlicher Sprache, zu Information Retrieval, zur Wissensrepräsentation, zum Automated Reasoning und zum maschinellen Lernen, um gewünschte Daten zu erkennen und zu extrahieren. Im Gegensatz zu den oben beschriebenen herkömmlichen Abfragesuchen empfangen QA-Systeme eine in natürlicher Sprache eingegebene Frage, versuchen, die Frage genauer zu verstehen, und geben auf die Frage eine exakte Antwort zurück. Auf diese Weise werden aufeinanderfolgende Datenanalysen erheblich reduziert. Beispielsweise werden zur Beantwortung des eingegebenen Fragesatzes „Welches Land eignet sich unter Beachtung gesetzlicher Bestimmungen rechtlich (z.B. demografische Daten) und physisch (z.B. Bodendaten, Wetterdaten usw.) zum Anbau einer bestimmten Pflanze (z.B. Sojabohnen)?“ mit der eingegebenen Frage zusammenhängende Vektordaten und Rasterdaten zusammengeführt, d.h. in Schichten angeordnet.
-
Bei einem Überblick über Aspekte der Erfindung behandeln eine oder mehrere Ausführungsformen der Erfindung die oben beschriebenen Unzulänglichkeiten des Standes der Technik, indem sie ein „Raum-Zeit-Dichte“-Datenbanksystem bereitstellen, das eine Big-Data-Analyseplattform wie zum Beispiel IBM® Physical Analytics Integrated Data Repository and Service (PAIRS) nutzt, um Vektordaten und Rasterdaten zusammenzuführen. Das Datenbanksystem ist eingerichtet, um Big Data auf der Grundlage von geografischem Raum und Zeit zu indizieren. IBM ist eine in vielen juristischen Zuständigkeitsbereichen weltweit eingetragene Handelsmarke von International Business Machines Corporation. Auf diese Weise kann das Raum-Zeit-Dichtesystem schichtübergreifende Abfragen in Bezug auf sowohl Rasterdaten als auch Vektordaten skalierbar unterstützen. Bei einer oder mehreren nicht einschränkenden Ausführungsformen der Erfindung realisiert ein geografisch-räumliches System ein verteiltes Dateisystem wie zum Beispiel das durch Apache™ Hadoop® bereitgestellte Hadoop Distributed File System (HDFS™). Das verteilte Dateisystem kann Datendateien in große Blöcke aufteilen und sie auf Knoten in einem Cluster verteilen, und es kann gepackten Code zu Knoten übertragen, um die Daten parallel zu verarbeiten, wodurch die Örtlichkeit der Daten vorteilhaft genutzt wird, an der die Knoten die Daten manipulieren, auf die sie zugreifen können. Dementsprechend ermöglicht das verteilte Dateisystem ein Übergeben einer einzelnen Rasterabfrage, um sowohl Rasterdaten zu erhalten, als auch eine einzelne Vektorabfrage, um Vektordaten zu erhalten, die zumindest teilweise auf MapReduce/ Apache™ Hadoop® und Apache Hbase™ und Apache Spark™ beruhen.
-
Das Datenbanksystem gemäß einer oder mehreren nicht einschränkenden Ausführungsformen der Erfindung ist außerdem in der Lage, Rasterdaten- und Vektordatenformate zusammenzuführen. Das Zusammenführen von Rasterdaten und Vektordaten stellt eine Verknüpfung bereit, um Analysen über mehrere Datensätze beider Datenformatarten (d.h. Rasterformate und Vektorformate) hinweg durchzuführen. Zum Beispiel kann ein Anfangs-Rasterdatensatz analysiert und vektorisiert werden, um ein „vektorisiertes Raster“-Datenergebnis zu erzeugen. Anders ausgedrückt kann eine Vektordatenlösung auf der Grundlage eines Anfangs-Rasterdatensatzes erzeugt werden. In ähnlicher Weise kann ein Anfangs-Vektordatensatz analysiert und gerastert werden, um ein „gerastertes Vektor“-Datenergebnis zu erzeugen. Das bedeutet, dass eine Rasterdatenlösung auf der Grundlage eines Anfangs-Vektordatensatzes erzeugt werden kann. Dementsprechend wird eine einzigartige Dateninfrastruktur bereitgestellt, die in der Lage ist, aus Datenbanken, die riesige Datenmengen enthalten, geografisch-räumliche Daten zu extrahieren, die in Schichten gemäß beiden Datenformaten angeordnet sind.
-
Unter Bezugnahme auf eine ausführlichere Beschreibung von Aspekten der vorliegenden Erfindung stellt 1 ein Raum-Zeit-Dichtedatenbanksystem 100 gemäß Ausführungsformen der Erfindung dar. Das Datenbanksystem 100 umfasst ein Speicher-Subsystem 102, ein Verarbeitungs-Subsystem 104, ein Anwendungs-Subsystem 106 und ein Dateiformatierungs-Subsystem 108. Die Anzahl und Anordnung der Subsysteme 102, 104, 106 und 108 sind als Beispiele veranschaulicht und in keiner Weise gedacht, das Datenbanksystem 100 auf eine bestimmte Anordnung und/oder Anzahl von Subsystemen zu beschränken.
-
Das Speicher-Subsystem 102 umfasst ein verteiltes Dateisystem 110 und eine verteilte Datenbank 112. Das Speicher-Subsystem 102 kann in Verbindung mit dem Dateiformatierungs-Subsystem 108 arbeiten, um Daten gemäß verschiedenen Dateiformaten zu laden oder zu speichern. Bei einer oder mehreren Ausführungsformen der Erfindung erzeugt ein ASCII-Dateigenerator eine ASCII-Basisdatei. Anstelle einer direkten Nutzung einfacher ASCII-Textdateien wird ein Hochladen von Daten realisiert, indem die einfachen ASCII-Textdateien an vorhandene Dateien im HDFS™ 110 angehängt werden. Die ASCII-Basisdatei kann über einen spaltenorientierten Apache-Parquet™-Dateiformatgenerator 111 in eine auf Spalten beruhende Datendatei umgewandelt werden, und Daten-Frames können aus den Apache-Parquet™-Dateien gemäß dem HDFS™-Framework geladen werden. Außerdem kann mit Hilfe von SQL-Abfragen, die durch PySpark™ genutzt werden, direkt auf Apache-Parquet™-Dateien zugegriffen werden, wodurch weitere Datenanalysen an Vektordaten durchgeführt werden können.
-
Das verteilte Dateisystem 110 umfasst zum Beispiel ein Clusterdatei-System, das gemeinsam genutzt werden kann, da es gleichzeitig auf mehreren Servern angehängt ist. Bei einen oder mehreren Ausführungsformen der Erfindung ist das verteilte Dateisystem 110 als HDFS™ gemäß dem Apache™-Hadoop®-Architektur-Framework realisiert.
-
Beim Realisieren des verteilten Dateisystems 110 gemäß HDFS™ werden entsprechende HDFS-Dateien anhand der Dateinamenskonvention „<ma>_<n>-<Z>-<t>.pvd“ erstellt, wobei die Erweiterung „pvd“ auf den neu definierten Dateityp „PAIRS Vector Data“ hinweist, der im Folgenden kurz als „PVD“ bezeichnet wird. Der Parameter „<ma>“ stellt ein Hauptattribut dar, in das alle Vektordaten eingeordnet werden, z.B. Straßen, Häuser, Tweets usw. Der Parameter „<n>“ stellt eine bestimmte „virtuelle“ Auflösungsschicht dar. Der Parameter „<Z>“ dient als Index für einen geografisch-räumlichen Bereich. Der Parameter „<t>“ stellt einen als Unixzeit ausgedrückten Gitterzeitstempel (t') dar, z.B. die seit dem 1. Januar 1970, null Uhr (0 Stunden, 0 Minuten, 0 Sekunden) vergangenen Sekunden. Beispielsweise können Daten mit exakten Zeitstempeln t als Dictionary-Parameter gespeichert werden (vgl. Gl. 1), sodass t innerhalb des Zeitintervalls [t', t' + Δt'] liegt. Die Länge des Zeitintervalls Δt' ist ein Parameter, der je nach der Art der Daten festgelegt werden muss.
-
Bei einer oder mehreren Ausführungsformen der Erfindung kann der Parameter „<Z>“ durch eine (vorzeichenlose) Ganzzahldarstellung eines geografisch-räumlichen Index (Zn) auf einer bestimmten Auflösungsschicht <n> ersetzt werden. Der geografisch-räumliche Index (Zn) auf der Auflösungsschicht <n> definiert ein geografisch-räumliches Rechteck im Breitengrad-Längengrad-Raum (x, y), d.h. xn < x < xn + dn und yn < y < yn + dn bei einer bestimmten Auflösung (dn ), z.B. „einen halben Längengrad/Breitengrad“. Anders ausgedrückt können jedem Zn eindeutig zwei geografisch-räumlichen Koordinaten (xn, yn) zugehörig sein, und der Index n gibt eine entsprechende eindeutige Auflösung dn an. Daher kann eine zusammengeführte Raster-Vektor-Korrelation hergestellt werden, indem Vektordaten in der oben angegebenen HDFS-Datei gespeichert werden (d.h. <ma>_<n>-<Z>-<t>.pvd).
-
Gemäß einer oder mehreren Ausführungsformen der Erfindung stellt jede Zeile der auf ASCII beruhenden PVD-Textdatei Vektordaten als Python-Objekte dar. Somit folgt die auf ASCII beruhende PVD-Textdatei der nachstehend angegebenen Datenstruktur:
-
Der Parameter „R“ bezeichnet einen Python-Dictionary-Parameter. Zur Verringerung des Speicherplatzes werden einzelne Zeichen verwendet. Der Parameter „i“ stellt eine Vektordatenkennung dar. Der Parameter „g“ stellt geografisch-räumliche Vektordaten dar. Der Parameter „a“ stellt optionale Vektordatenattribute dar. Der Parameter „q“ stellt einen optionalen Baumdatenstrukturparameter wie zum Beispiel einen Quadtree-Strukturdatenparameter dar. Der Parameter „id“ ist eine eindeutige Objektkennung, die Duplikate mehrerer Dateien kennzeichnet, die zusammengeführt werden.
-
Die PVD-Textdatei stellt unterschiedliche Optionen zum Speichern von Vektordaten in einem verteilten Dateisystem 110 auf der Grundlage der Definition von Zn bereit. Gemäß einer ersten Option werden in der PVD-Textdatei alle umgrenzenden Extraktionsformen (z.B. Polygon) gespeichert, die sich mit dem „virtuellen“ Bereich/Rechteck überlappen, der bzw. das zu Zn gehört und dessen zugewiesener Zeitstempel in das Zeitintervall [t, t + Δt'] des Gitterzeitstempels t' fällt, der durch den Parameter <t> des PVD-Dateinamens dargestellt wird. Diese Prozedur dupliziert umgrenzende Extraktionsformen. Gemäß einer zweiten Option werden Daten zu Umgrenzungen des virtuellen Bereichs/Rechtecks abgeschnitten. In beiden Fällen wird die eindeutige Kennung aus Gl. 1 benötigt, um diese Operation zu invertieren.
-
Die erste Option ist bei polygonförmigen Extraktionsumgrenzungen nützlich, deren Verhältnis von typischer Fläche (a) zu Umrandungsboxfläche (aB) nahezu eins beträgt, d.h. a/aB ≈ 1. Darüber hinaus sollte die Abweichung der Fläche (δa) geringfügig oder zumindest kleiner im Vergleich zum Durchschnitt der Fläche des Polygon (a') sein, d.h. δa/a' < 1. Dies gilt in der Regel für geordnete feststehende Formen wie zum Beispiel Häuser und Gebäude.
-
Beispielsweise kann bei einer angenommenen geordneten feststehenden Fläche wie zum Beispiel einer in quadrierten Einheiten (z.B. ft
2) gemessenen Hausfläche (a'), die mit einer Geschwindigkeit (f) aufgebaut wird, und einer hinsichtlich der Anzahl von Zeilen (N
S) bestimmten maximalen Dateigrößenbeschränkung die Auflösungsschicht „<n>“ anhand des folgenden Ausdrucks ermittelt werden:
-
Die zweite Option kann verwendet werden, wenn Parameter der ersten Optionen bekannt sind. Bei einem Beispiel kann es sich um eine kleine Straße handeln, die sich durch eine Landschaft windet. Im ungünstigsten Fall verbindet sie alle Zn auf einer bestimmten Auflösungsschicht <n>, sodass eine maximale Duplizierung auftritt. Eine Nutzung der oben beschriebenen Option 2 beschneidet alle Vektordaten, sodass keine Duplikate erstellt werden. Jedoch muss beim Abfragen einer Fläche, die mehrere Zn enthält, die ursprüngliche Linie bzw. das ursprüngliche Polygon rekonstruiert werden. Zu diesem Zweck kann der Parameter „id“ doppelte Datenelemente kennzeichnen.
-
Bei einer oder mehreren Ausführungsformen der Erfindung können Dichtedaten genutzt werden, um eine durchschnittliche oder geschätzte Anzahl von Objekten je Einheitsfläche zu ermitteln. Die Dichtedaten können anhand der folgenden Gleichung ermittelt werden:
-
In Bezug auf Daten, die Häuser oder Gebäude darstellen, kann die Polygonfläche (a') als invertierte Dichte gekennzeichnet werden, d.h. als ein Haus pro Hausfläche, wenn beispielsweise angenommen wird, dass sich Häuser in der Regel im Raum nicht überlappen.
-
Ein Erstellen einer Verknüpfung zwischen den Rasterdaten und den Vektordaten stellt eine geografisch-räumliche Aufteilung/Indizierung der Vektordaten bereit. Auf diese Weise wird die zu analysierende Datenmenge verringert, während außerdem eine interessierende geografisch-räumliche Fläche innerhalb eines bestimmten Zeitintervalls bereitgestellt wird. Im Wesentlichen definiert die Dateinamenskonvention ein Raum-Zeit-Volumen, das ausgedrückt werden kann als:
-
Eine geeignete PVD-Dateigröße (proportional zu NS) vorausgesetzt, die wie nachstehend erörtert zu einer optimalen Systemleistung führt, können t' und dn so variiert werden, dass deren Produkt konstant bleibt. Bei gegebenen ρ und f kann eine den Vektordaten entsprechende feststehende Raum-Zeit-Dichte erzeugt werden, die wiederum zum Ermitteln der maximalen Dateigrößenbeschränkung (N
S) auf der Grundlage des folgenden Ausdrucks verwendet werden kann:
wobei
ρf eine bestimmte oder feststehende Raum-Zeit-Dichte ist, die den Vektordaten entspricht.
-
Unter der Annahme, dass das feststehende Produkt ρf (hierin als „Raum-Zeit-Dichte“ bezeichnet) bekannt ist, und in Abhängigkeit von der für die Vektordaten erwarteten Abfrage können Δt' und dn variiert werden, um die Aufteilung der Vektordaten auf die PVD-Dateien anzupassen. Falls ρ und f in dem Fall getrennt bekannt sind, bei dem fΔt' viel größer als pdn 2 ist (bei gegebener Einschränkung Gl. 5), würde die PVD-Datei überwiegend Zeitreihen von Daten enthalten, die räumlich dicht beieinander liegen. Alternativ werden räumliche Schnappschüsse von Daten durch die entsprechende PVD-kumuliert, wenn fΔt' viel kleiner als pdn 2 ist. Die Raum-Zeit-Dichte selbst kann jedoch verwendet werden, um dn und Δt' mit Hilfe von Gl. 5 zueinander in Beziehung zu setzen. Dies erweist sich z.B. bei Vektordaten als nützlich, die zu beweglichen Objekten wie zum Beispiel Autos gehören. Es sollte klar sein, dass das System 100 betrieben werden kann, um Kompromisse zwischen beiden oben erörterten Abfragearten bereitzustellen, d.h. bei fΔt' ~ ρdn 2.
-
2 ist eine schematische Darstellung, die veranschaulicht, wie die Raum-Zeit-Dichte (ρf) 200 eine Verknüpfung (d.h. Korrelation) zu einem eindimensionalen Raum-Zeit-Volumen (dnΔt') für Raumabfragen über die Zeit herstellen kann. Der Pfad einzelner Datenpunkte 202 kann Bewegungswege 204 beweglicher Vektorobjekte 206 darstellen, z.B. von Autos. Eine Datendatei-Überdeckungsfläche 208 legt fest, ob eine bestimmte ρf 200 in einer bestimmten HDFS-Datendatei enthalten ist. Es sollte jedoch klar sein, dass das in 2 veranschaulichte Beispiel nicht auf Punktdaten beschränkt ist.
-
Unter erneuter Bezugnahme auf 1 kann die verteilte Datenbank 112 mehrere unabhängige Datenspeicherorte umfassen, die physische Komponenten nicht gemeinsam nutzen. Daten können aus unterschiedlichen Speicherorten extrahiert und kombiniert werden, um ein Ergebnis bereitzustellen. Die Speicherorte können in mehreren Computern, Datenservern usw. genutzt werden, die sich am selben physischen Ort befinden oder über ein Netzwerk aus untereinander verbundenen Computern verteilt sein können. Dementsprechend kann das Netzwerk aus einzelnen Daten Speicherorten die verteilte Datenbank 110 definieren. Im Gegensatz zu parallelen Systemen, bei denen die Prozessoren eng gekoppelt sind und ein einziges Datenbanksystem bilden, kann eine verteilte Datenbank 112 als lose gekoppelte Orte realisiert sein, die physische Komponenten nicht gemeinsam nutzen. Auf diese Weise können große Sammlungen von Daten (z.B. in einer Datenbank) über viele physische Standorte oder Speicherorte verteilt sein.
-
Bei einer oder mehreren Ausführungsformen der Erfindung ist die verteilte Datenbank 112 als Apache Hbase™ 112 realisiert und wird in Verbindung mit dem verteilten Dateisystem 110 ausgeführt, wenn es als HDFS™ realisiert ist. Die Hbase™ 112 ist eine spaltenorientierte verteilte Schlüsselwertdatenbank. Tabellen in der Hbase™ 112 sind über eine Webschnittstelle 115 und/oder verschiedene APIs 117 (z.B. PAIRS API) zugänglich, die das Anwendungs-Subsystem 106 umfasst. Die Hbase™ 112 eignet sich gut für schnellere Lese- und Schreibvorgänge bei großen Datensätzen mit einem hohen Durchsatz und einer niedrigen Latenz bei Eingabe/Ausgabe. Auf diese Weise kann die Hbase™ 112 eine fehlertolerante Möglichkeit zum Speichern großer Mengen von dünn besetzten Daten bereitstellen. Mit „dünn besetzten Daten“ werden kleine Mengen von Informationen bezeichnet, die innerhalb einer großen Sammlung leerer oder unwichtiger Daten erfasst werden, die manchmal auch als „Rauschen“ bezeichnet werden. Zu Beispielen dünnbesetzter Daten gehören ein Erkennen der 50 größten Elemente in einer Gruppe von 2 Milliarden Datensätzen oder ein Ermitteln der von null abweichenden Elemente, die weniger als 0,1 % einer riesigen Datensammlung darstellen. Bei einer oder mehreren Ausführungsformen der Erfindung umfasst die Hbase™ 112 eine Structured-Query-Language-Schicht (SQL-Schicht) mit einem SQL-Abfragemodul sowie eine Datenbankverbindung-API wie zum Beispiel einen Java™-Database-Connectivity-Treiber (JDBC-Treiber), der in verschiedene Analyse- und Business-Intelligence-Anwendungen integriert werden kann. Java und alle auf Java beruhenden Marken und Logos sind Marken oder eingetragene Marken von Oracle und/oder dessen Tochterunternehmen.
-
Das Verarbeitungs-Subsystem 104 umfasst einen parallelen Vektordaten Prozessor (PVD-Prozessor) 114, einen MapReduce-Prozessor 116 und einen Datenzusammenführungsprozessor 118. Ein beliebiger des PVD-Prozessors 114, MapReduce-Prozessors 116 und Datenzusammenführungsprozessors 118 kann als elektronische Hardwaresteuereinheit aufgebaut sein, die Hauptspeicher und einen Prozessor umfasst, der so eingerichtet ist, dass Algorithmen und durch Computer lesbare Programmanweisungen ausgeführt werden, die im Hauptspeicher gespeichert sind.
-
Der PVD-Prozessor
114 kann gemäß einem verteilten Datenverarbeitungs- und Cluster-Datenverarbeitungsrahmenwerk aufgebaut sein, das eine Schnittstelle zum Programmieren ganzer Cluster (z.B. Computer-Cluster) mit inbegriffener Datenparallelität und Fehlertoleranz umfasst. Bei einer oder mehreren Ausführungsformen der Erfindung ist der PVD-Prozessor
114 gemäß dem Apache-Spark™-/PySpark™-Framework realisiert. Dementsprechend kann der PVD-Prozessor
114 eine Anwendungsprogrammierschnittstelle bereitstellen, die auf einer Datenstruktur beruht, die als ausfallsicherer verteilter Datensatz (RDD-Datensatz) (RDD = resilient distributed dataset)
115 bezeichnet wird. Der RDD
115 ist eine schreibgeschützte Mehrfachmenge von Datenobjekten, die über einen Cluster von Maschinen verteilt sind und in einer fehlertoleranten Weise verwaltet werden können. Als skalierbare Plattform kann der PVD-Prozessor
114 einen oder mehrere RDDs
115 in den Hauptspeicher (z.B. verteilten Hauptspeicher) eines Computer-Clusters laden. Bei Realisierung des PVD-Prozessors
114 gemäß dem Apache-Spark™-Framework kann eine Abfolge von Umwandlungen ({f1, f2, ...fn}), die auf einen bestimmten RDD wirken, definiert werden als:
-
Ein oder mehrere RDDs 115 können aus verschiedenen Quellen geladen werden. Eine Option besteht darin, eine ASCII-Textdatei einzubeziehen, die unter Verwendung des verteilten Dateisystems 110 (z.B. HDFS) zwischen den Cluster-Knoten verteilt ist. Dementsprechend kann der PVD-Prozessor 114 einzeln auf jede Zeile des Textes einwirken und die Abfolge {fn} anwenden. Eine Zeile des Textes kann z.B. eine JSON-Darstellung der in Gl. 1 definierten Datenstruktur umfassen, die eine Umgrenzungsform wie zum Beispiel ein Polygon mit entsprechenden Attributen definiert.
-
Bei Realisierung gemäß dem Apache-Spark™-Framework umfasst der PVD-Prozessor 114 außerdem eine Skriptsprachen-API wie zum Beispiel PySpark™. Die PySpark™-API ermöglicht einen Zugriff auf verschiedene geografisch-räumliche Pakete, die ein Arbeiten an Datentabellen (d.h. Daten-Frames) über SQL-Operationen ermöglichen. Die Fähigkeit zur Nutzung von SQL-Operationen ermöglicht außerdem einen direkten Zugriff auf ein spaltenorientiertes Datenbankverwaltungssystem (database management system, DBMS) wie zum Beispiel den Apache-Parquet™-Dateiformatgenerator 111.
-
Der MapReduce-Prozessor 116 ist so eingerichtet, dass Big-Data-Sätze mit einem parallelen verteilten Algorithmus auf einem Cluster verarbeitet und erzeugt werden. Der MapReduce 116 ist so eingerichtet, dass ein Map-Prozess und ein Reduce-Prozess durchgeführt werden. Der Map-Prozess (z.B. ein Algorithmus) führt ein Filtern und Sortieren wie zum Beispiel ein Sortieren von Studenten nach dem Vornamen in Warteschlangen bei jeweils einer Warteschlange für jeden Namen durch. Der Reduce-Prozess führt eine Zusammenfassungsoperation wie zum Beispiel ein Zählen der Anzahl von Studenten in jeder Warteschlange durch, die zu Namenshäufigkeiten führt. Dementsprechend kann der MapReduce-Prozessor 116 Daten verarbeiten, indem verschiedene Operationen einschließlich, ohne auf diese beschränkt zu sein, des Ordnens der verteilten Server, des parallelen Ausführens der verschiedenen Aufgaben, des Verwaltens des gesamten Datenaustauschs und aller Datenübertragungen zwischen den verschiedenen Teilen des Systems und des Bereitstellens von Redundanz und Fehlertoleranz durchgeführt werden.
-
Der Datenzusammenführungsprozessor 118 ist so eingerichtet, dass gefilterte Rasterdaten erhalten und die gefilterten Rasterdaten mit einer Sammlung von Vektordaten zusammengeführt (z.B. in Schichten angeordnet) werden. Bei einer oder mehreren Ausführungsformen der Erfindung ist der Datenzusammenführungsprozessor 118 gemäß dem durch IBM® bereitgestellten PAIRS realisiert. Da die Rasterdaten mit den Vektordaten zusammengeführt sind, kann der Datenzusammenführungsprozessor 118 eine Vektorabfrage empfangen, die zusammengeführte Daten rastern und ein Rasterdatenergebnis erzeugen. Der Datenzusammenführungsprozessor 118 kann Daten als einfachen ASCII-Text in HDFS speichern (falls sie vektorisiert sind), aber in der Standardbetriebsart wird das Abfrageergebnis zwecks weiterer Verarbeitung zu 115 oder 117 als z.B. GeoJSON (Vektordaten) und GeoTiff (Rasterdaten) weitergeleitet.
-
Der Datenzusammenführungsprozessor 118 kann außerdem eine Rasterabfrage empfangen, die zusammengeführten Daten vektorisieren und ein Vektordatenergebnis erzeugen. Weitere Einzelheiten hinsichtlich der Fähigkeit des Erhaltens von „vektorisierten Rasterdaten“ aus georeferenzierten Rasterdaten und von „gerasterten Vektordaten“ aus georeferenzierten Vektordaten werden nachstehend beschrieben. Bei einer oder mehreren Ausführungsformen der Erfindung verknüpft der Datenzusammenführungsprozessor 118 zeitlich-räumliche Rasterdaten mit Objekten im Vektorformat. Zu den durch den Datenzusammenführungsprozessor verarbeiteten Vektordaten gehören: (1) ein Punkt, (2) eine Linie und (3) eine Umgrenzungsform. Der Punkt umfasst eine einzelne geografisch-räumliche Koordinate (x, y), z.B. einen geografisch markierten Tweet, Standort eines Speichers usw. Die Linie umfasst eine Abfolge geografisch-räumlicher Koordinaten {(xn, yn)}n=1...N, wobei (x1, y1) ungleich (xN, yN), die zum Beispiel eine Straße, einen Fluss, einen Bewegungsweg usw. darstellt. Die Umgrenzungsform wie zum Beispiel ein Polygon ähnelt der Linie, umfasst jedoch eine übereinstimmende letzte und erste Koordinate, die zum Beispiel ein Gebäude, einen See usw. angeben. Darüber hinaus können Abfolgen {(x'n, y'n)}n=1...M vorliegen, wobei (x'1, y'1) = (x'M, y'M), die Innenkoordinaten entsprechen, die ein Loch darstellen. Der Prozess des Verknüpfens der zeitlich-räumlichen Rasterdaten mit Objekten im Vektorformat umfasst ein Zusammenführen (d.h. Anordnen in Schichten) gefilterter Rasterdaten mit Vektordaten.
-
Unter Bezugnahme auf 3 veranschaulicht das Schema den Prozess des Zusammenführens (d.h. des Anordnens in Schichten) gefilterter Rasterdaten mit Vektordaten gemäß einer oder mehreren nicht einschränkenden Ausführungsformen der Erfindung. Der Datenzusammenführungsprozessor 118 erzeugt ein Rastergitter 300, das dem virtuellen Gitter 110 entspricht, das durch die PVD-Datei (z.B. <ma>_<n>-<Z>-<t>.pvd) definiert ist. Das Rastergitter 300 umfasst eine Mehrzahl von Rasterzellen (Z1) 302. Jede Rasterzelle 302 kann durch einen entsprechenden Satz Koordinaten (z.B. Breitengradkoordinate, Längengradkoordinate) gekennzeichnet sein. Rasterzellen, die Vektorobjekte (z.B. Punkte, Linien, Umgrenzungsformen usw.) enthalten, sind gekennzeichnet, und den enthaltenen Vektorobjekten sind die Koordinaten der betreffenden Rasterzelle zugewiesen. Dementsprechend sind die Vektordaten (d.h. nicht gerasterte Daten) mit räumlichen Rasterdaten korreliert.
-
Bei einer oder mehreren Ausführungsformen der Erfindung sind Gitterkoordinateninformationen auf der Grundlage einer Ausrichtung einer oder mehrerer Rasterzellen 302 in Bezug auf ein Vektorobjekt oder einen Abschnitt des Vektorobjekts zu Vektordaten zugewiesen. Beispielsweise wird ein Anfangs-Vektordatensatz empfangen, der mindestens ein Vektorobjekt wie zum Beispiel einen Punkt, eine Linie und/oder eine Umgrenzungsform (z.B. ein Polygon) umfasst. Das Rastergitter 300 wird dem Vektordatensatz überlagert, um eine Mehrzahl von Zellen 302 zu definieren. Das Rastergitter 300 umfasst eine Reihe von Breitengradkoordinaten (m - 2, m - 1, m, m + 1 usw.), die einer horizontalen Achse des Gitters zugewiesen sind, und eine Reihe von Längengradkoordinaten (n - 2, n - 1, n, n + 1 usw.), die einer vertikalen Achse des Gitters zugewiesen sind. Ein Satz Breitengrad- und Längengradkoordinaten (z.B. m + 1; n - 2) definiert eine Zelle in der Mehrzahl von Zellen. Auf diese Weise kann eine bestimmte Zelle (z.B. m + 1; n - 2) erkannt werden, die ein Vektorobjekt oder mindestens einen Abschnitt eines Vektordatenelements enthält (z.B. 306a). Dem Vektorobjekt oder dessen Abschnitt wird anschließend dem Satz Breitengrad- und Längengradkoordinaten der betreffenden Zelle zugewiesen.
-
Jede PVD-Datei ist einer bestimmten Rasterzelle 302 auf einer festgelegten Auflösungsebene (z.B. Ebene I) zugewiesen. Dementsprechend werden die Punkte 304a, 304b, 304c ... 304n automatisch mit dem Gitter 300 verknüpft. Linien 306 und Umgrenzungsformen 308 (z.B. Polygone), die mehrere Rasterzellen 302 gemeinsam nutzen, sind innerhalb der Datei entweder in mehrere Vektorobjekte aufgeteilt (siehe Liniensegmente 306a und 306b) oder dupliziert (siehe Umgrenzungsformduplikate 308a und 308b). Duplizierte Elemente (z.B. 308a und 308b) können unter Verwendung des Parameters „id“ erkannt werden, den die oben beschriebene PVD-ASCII-Textdatei umfasst (d.h. R = {„i“: id, „g“: P, „a“: A, „q“:Q}).
-
Das in den 4A und 4B veranschaulichte Verfahrensflussdiagramm veranschaulicht die Fähigkeit des Raum-Zeit-Dichtedatenbanksystems 100, „vektorisierte Rasterdaten“ aus georeferenzierten Rasterdaten zu erhalten. Unter Bezugnahme auf eine Operation 400 empfängt das Datenbanksystem 100 eine Abfrage in Bezug auf Ergebnisse mit vektorisierten Daten, die auf Rasterdaten beruhen. Die aus dem Vektorisieren von Rasterdaten erhaltenen vektorisierten Daten werden hierin als „vektorisierte Rasterdaten“ bezeichnet. Als Reaktion auf ein Empfangen der Abfrage in Bezug auf vektorisierte Daten erhält das Datenbanksystem 100 georeferenzierte Rasterdaten aus einer Rasterdatenquelle. Die Rasterdatenquelle umfasst zum Beispiel Satellitenbilder, zweidimensionale Wetterabbildungsdaten (2-D-Wetterabbildungsdaten). Die Rasterdaten 420 umfassen eine Mehrzahl einzelner Pixel 422a, 422b, 422c, 422d, 422n. Die Pixel können verschiedene Elemente oder Objekte darstellen, die die Rasterdaten 420 umfassen. Beispielsweise kann ein erstes Pixel 422b ein Haus darstellen. Eine zweite Gruppe von Pixeln 422c kann einen Fluss darstellen. Eine dritte Gruppe von Pixeln 422d kann einen Wald oder eine bewaldete Fläche darstellen. Die Rasterdaten 420 können in verschiedenen geografisch-räumlichen Projektionen angegeben sein, darunter, ohne auf diese beschränkt zu sein, UTM (Universal Transverse Mercator), BNG (British National Grid) und USNG (U.S. National Grid). Die Rasterdaten 420 können außerdem Zeitstempelinformationen wie zum Beispiel eine Uhrzeit und/oder ein Datum umfassen, zu der bzw. zu dem das Bild durch die Rasterdatenquelle aufgenommen wurde.
-
Unter Bezugnahme auf eine Operation 402 führt das Datenbanksystem 100 eine Neuprojektion des geografisch-räumlichen Gitters durch, die ein Gittersystem 424 auf den Pixeln 422a bis 422n überlagert, wie in einer Operation 404 gezeigt. Dementsprechend wird den Pixeln 422a bis 422n auf der Grundlage ihrer Ausrichtung mit dem Gittersystem 424 ein Wert zugewiesen. Bei einer oder mehreren Ausführungsformen der Erfindung ist das Gittersystem 424 gemäß einer Baumdatenstruktur wie zum Beispiel einer Quadtree-Datenstruktur unterteilt, und ihm sind Breitengradkoordinaten m - 1, m, m + 1, m + 2 usw. und Längengradkoordinaten n, n + 1, n + 2 usw. zugewiesen. Auf diese Weise werden die Pixel 422a bis 422n gemäß den Koordinaten des Gittersystems 424 indiziert.
-
Unter Bezugnahme auf eine Operation 406 werden räumlich-zeitliche Informationen der Rasterdaten 420 verwendet, um die Rasterdaten 420 gemäß der Abfrage zu filtern. Dementsprechend werden ein oder mehrere gefilterte Pixel 422a' und 422c' erkannt und aus dem Anfangs-Rasterdatensatz 420 extrahiert, um ein Rasterdatenabfrageergebnis (d.h. gefilterte Rasterdaten) zu erzeugen, wie in einer Operation 408 veranschaulicht. Bei einer Operation 410 werden die gefilterten Pixel 422a' und 422c' vektorisiert, um Vektordaten zu erzeugen. Die vektorisierten Rasterdaten 426 und 428 werden bereitgestellt, die das Rasterdatenabfrageergebnis darstellen, d.h. die gefilterten Pixel 422a' und 422c', wie in einer Operation 412 gezeigt. Beispielsweise sind die Vektorformen 426 und 428 ein Hinweis darauf, dass auf der Grundlage der gefilterten Rasterpixel 422a' und 422c', die aus dem Anfangs-Rasterdatensatz 420 extrahiert wurden, ein Vektordatenabfrageergebnis erzeugt werden kann. Auf diese Weise erzeugt das Datenbanksystem 100 „vektorisierte Rasterdaten“ 426 und 428 aus einem georeferenzierten Anfangs-Rasterdatensatz 420.
-
Das in den 5A und 5B veranschaulichte Verfahrensflussdiagramm veranschaulicht die Fähigkeit des Raum-Zeit-Dichtedatenbanksystems 100, auf der Grundlage einer Bilderkennungsanalyse „vektorisierte Rasterdaten“ aus georeferenzierten Rasterdaten zu erhalten. Die Operationen 500, 502 und 504 ähneln den oben in Bezug auf die 4A bis 4B beschriebenen Operationen, und daher werden deren Beschreibungen nicht wiederholt. Unter Bezugnahme auf eine Operation 506 wird eine räumlich-zeitliche Abfrage empfangen und das Datenbanksystem 100 führt verschiedene Bilderkennungsanalyseprozesse an der Neuprojektion des geografisch-räumlichen Gitters der Pixel 422a, 422b, 422c und 422 durch, die in Operation 504 erzeugt wurde. Das Datenbanksystem 100 kann verschiedene Deep-Learning-Algorithmen und Bilderkennungsalgorithmen realisieren, um Landschaften, Objekte und Elemente aus dem Anfangs-Rasterdatensatz 420 zu erkennen. Beispielsweise kann eine Abfrage verwendet werden, um ein oder mehrere Zielobjekte (z.B. ein Haus, einen Fluss, einen Wald usw.) aus dem Rasterdatensatz zu erkennen. Auf der Grundlage der Abfrage wendet das Datenbanksystem 100 den Bilderkennungsprozess auf die Rasterdaten an, erkennt der Abfrage entsprechende Objekte und erzeugt ein Bilderkennungsergebnis als „vektorisierte Rasterdaten“ bei einer Operation 508. Die vektorisierten Rasterdaten stellen ein oder mehrere erkannte Objekte 520a, 520b, 520c dar, die die eingegebene Abfrage erfüllen. Auf diese Weise erzeugt das Datenbanksystem 100 auf der Grundlage einer Bilderkennungsanalyse aus georeferenzierten Rasterdaten 420 „vektorisierte Rasterdaten“ 520.
-
Das in den 6A und 6B veranschaulichte Verfahrensflussdiagramm veranschaulicht die Fähigkeit des Datenbanksystems 100, „gerasterte Vektordaten“ aus georeferenzierten Vektordaten zu erhalten. Bei einer Operation 600 empfängt das Datenbanksystem 100 eine Abfrage in Bezug auf Ergebnisse mit gerasterten Daten, die auf einem Anfangs-Vektordatensatz beruhen. Die aus dem Rastern der Vektordaten erhaltenen gerasterten Daten werden hierin als „gerasterte Vektordaten“ bezeichnet. Als Reaktion auf ein Empfangen der Abfrage in Bezug auf gerasterte Daten erhält das Datenbanksystem 100 georeferenzierte Vektordaten aus einer Vektordatenquelle wie zum Beispiel OpenStreetMap. Die Vektordatenquelle umfasst zum Beispiel Punkte 620, Linien 622 und/oder Umgrenzungsformen 624 (z.B. Polygone). Ein Vektorpunkt 620 kann zum Beispiel ein Haus darstellen, eine Vektorlinie 622 kann zum Beispiel einen Fluss darstellen und ein Polygon 624 kann zum Beispiel ein Wohngebiet darstellen. Die Vektordaten 620, 622 und 624 können in verschiedenen geografisch-räumlichen Projektionen angegeben sein, darunter, ohne auf diese beschränkt zu sein, UTM, BNG und USNG. Die Vektordaten 620, 622 und 624 können außerdem Zeitstempelinformationen wie zum Beispiel das Datum umfassen, an dem die Wohngebietsumgrenzung definiert wurde, oder das Datum, an dem eine Straße gebaut wurde.
-
Unter Bezugnahme auf eine Operation 602 führt das Datenbanksystem 100 eine Neuprojektion des geografisch-räumlichen Gitters durch, die ein Gittersystem 626 auf den Vektordaten 620, 622, 624 überlagert, wie in einer Operation 604 gezeigt. Dementsprechend wird den Vektordaten 620, 622, 624 auf der Grundlage ihrer Ausrichtung mit dem Gittersystem 424 ein Wert zugewiesen. Bei einer oder mehreren Ausführungsformen der Erfindung ist das Gittersystem 626 gemäß einer Baumdatenstruktur wie zum Beispiel einer Quadtree-Datenstruktur unterteilt, und ihm sind Breitengradkoordinaten m - 1, m, m + 1, m + 2 usw. und Längengradkoordinaten n, n + 1, n + 2 usw. zugewiesen. Auf diese Weise werden die Vektordaten 620, 622 und, 624 gemäß den Koordinaten des Gittersystems 626 indiziert. Die indizierten Vektordaten 620, 622 und 624 werden anschließend im verteilten Dateisystem 110 (z.B. HDFS™) als einzelne Zeilen der PVD-Datei gespeichert. Bei einer oder mehreren Ausführungsformen der Erfindung werden Vektorobjekte (z.B. eine Linie 622) in einzelne Teilelemente 622a und 622b (z.B. Zeilensegmente) aufgeteilt, wenn sie über mehrere Gitterzellen 626 hinweg verlaufen.
-
Unter Bezugnahme auf eine Operation 606. werden eine oder mehrere PVD-Dateien ausgewählt, die der zeitlichen und räumlichen Überdeckung der eingegebenen Abfrage entsprechen. Bei einer Operation 608 werden die Indexdaten aus dem PVD-Dateien extrahiert, und der PVD-Prozessor 114 stellt eine Anwendungsprogrammierschnittstelle bereit, die einem ausfallsicheren verteilten Datensatz (RDD) 115 entspricht. Bei einer Operation 610 werden die den ausgewählten ASCII-Dateien entsprechenden Vektordaten 620, 622 und 624 gemäß der eingegebenen Abfrage gefiltert, und bei einer Operation 612 wird ein gefiltertes Vektorabfrageergebnis erzeugt. Bei dem in den 6A bis 6B veranschaulichten Beispiel stellen die gefilterten Vektorabfrageergebnisse eine Umgrenzungsform 624 (z.B. Polygon) bereit. Bei einer Operation 614 werden die gefilterten Vektorabfrageergebnisse in eine Baumdatenstrukturdarstellung (z.B. Quadtree-Darstellung) auf einer festgelegten Auflösungsebene umgewandelt. Dementsprechend werden die gerasterten Vektordaten bei einer Operation 616 erzeugt, die die gerasterten Datenpixel 628 umfasst, die durch das gefilterte Vektorabfrageergebnis, d.h. das Filterpolygon 624, umgrenzt sind.
-
Es versteht sich, dass eine Realisierung der hierin angeführten Lehren nicht auf eine bestimmte Cloud-Computing-Umgebung beschränkt ist. Vielmehr können Ausführungsformen der vorliegenden Erfindung in Verbindung mit einer beliebigen anderen Art von Datenverarbeitungsumgebung realisiert werden, die gegenwärtig bekannt ist oder in Zukunft entwickelt wird.
-
Eine oder mehrere Ausführungsformen der Erfindung können zum Beispiel als Cloud-Computing-Umgebung realisiert werden. Cloud-Computing ist ein Modell zur Bereitstellung von Diensten, um einen praktischen und bei Bedarf verfügbaren Netzwerkzugriff auf ein gemeinsam genutztes Reservoir konfigurierbarer Datenverarbeitungsressourcen (z.B. Netzwerke, Netzwerkbandbreite, Server, Verarbeitung, Hauptspeicher, Speicher, Anwendungen, virtuelle Maschinen und Dienste) zu ermöglichen, die bei minimalem Verwaltungsaufwand oder minimaler Interaktion mit einem Anbieter des Dienstes schnell bereitgestellt und freigegeben werden können. Dieses Cloud-Modell kann mindestens fünf Eigenschaften, mindestens drei Dienstmodelle und mindestens vier Realisierungsmodelle umfassen.
-
Die Eigenschaften sind folgende:
- On-demand Self Service (Selbstzuweisung bei Bedarf): Ein Cloud-Kunde kann sich einseitig Datenverarbeitungsfunktionen wie zum Beispiel Serverzeit und Netzwerkspeicher dem Bedarf entsprechend automatisch bereitstellen, ohne dass eine Interaktion von Menschen mit dem Anbieter des Dienstes erforderlich ist.
-
Broad Network Access (umfassender Netzwerkzugriff): Es stehen Funktionen über ein Netzwerk zur Verfügung, auf die der Zugriff über Standardmechanismen erfolgt, die die Verwendung heterogener Thin- oder Thick-Quellplattformen (z.B. Mobiltelefone, Notebook-Computer und PDAs) unterstützen.
-
Resource Pooling (Ressourcenbündelung): Die Datenverarbeitungsressourcen des Anbieters werden gebündelt, um mehrere Kunden unter Verwendung eines Mehrfachnutzermodells mit unterschiedlichen physischen und virtuellen Ressourcen zu bedienen, die entsprechend dem Bedarf dynamisch zugewiesen und neu zugewiesen werden. Es besteht eine gefühlte Ortsunabhängigkeit in der Weise, dass der Kunde im Allgemeinen keine Kontrolle oder Kenntnis über den exakten Ort der bereitgestellten Ressourcen hat, aber möglicherweise in der Lage ist, den Ort auf einer höheren Abstraktionsebene (z.B. Land, Bundesstaat oder Datenverarbeitungszentrum) anzugeben.
-
Rapid Elasticity (rasche Elastizität): Funktionen können rasch und elastisch bereitgestellt werden, in einigen Fällen automatisch, um den Funktionsumfang schnell nach oben anzupassen, und schnell freigegeben werden, um den Funktionsumfang schnell nach unten anzupassen. Für den Kunden entsteht oftmals der Eindruck, dass die zur Bereitstellung verfügbaren Funktionen unbegrenzt sind und jederzeit in jeder beliebigen Menge gekauft werden können.
-
Measured Service (bemessener Dienst): Cloud-Systeme steuern und optimieren automatisch die Ressourcenverwendung durch Nutzung einer Bemessungsfunktion auf einer bestimmten Abstraktionsebene, die für die Art des Dienstes geeignet ist (z.B. Speicher, Verarbeitung, Bandbreite und aktive Benutzerkonten). Die Ressourcennutzung kann überwacht, gesteuert und gemeldet werden, sodass Transparenz sowohl für den Anbieter als auch den Kunden des genutzten Dienstes besteht.
-
Die Dienstmodelle sind folgende:
- Software as a Service (SaaS) (Software als Dienst): Die dem Kunden bereitgestellte Funktion besteht darin, die auf einer Cloud-Infrastruktur ausgeführten Anwendungen des Anbieters zu nutzen. Die Anwendungen sind von verschiedenen Client-Einheiten aus über eine Thin-Client-Schnittstelle wie zum Beispiel über einen Web-Browser (z.B. auf dem Web beruhende eMail) zugänglich. Der Kunde verwaltet oder steuert die unterlagerte Cloud-Infrastruktur einschließlich von Netzwerken, Servern, Betriebssystemen, Speicherplatz oder sogar einzelnen Anwendungsfähigkeiten nicht, abgesehen von der möglichen Ausnahme eingeschränkter benutzerspezifischer Konfigurationseinstellungen von Anwendungen.
-
Platform as a Service (PaaS) (Plattform als Dienst): Die dem Kunden bereitgestellte Funktion besteht darin, auf der Cloud-Infrastruktur vom Kunden erzeugte oder erworbene Anwendungen bereitzustellen, die unter Verwendung von Programmiersprachen und Programmierwerkzeugen erzeugt wurden, die durch den Anbieter unterstützt werden. Der Kunde verwaltet oder steuert die unterlagerte Cloud-Infrastruktur einschließlich von Netzwerken, Servern, Betriebssystemen, Speicherplatz oder sogar einzelnen Anwendungsfunktionen nicht, hat aber die Kontrolle über die bereitgestellten Anwendungen und möglicherweise über Konfigurationen der Hosting-Umgebung der Anwendungen.
-
Infrastructure as a Service (laaS) (Infrastruktur als Dienst): Die dem Kunden bereitgestellte Funktion besteht darin, Verarbeitung, Speicherplatz, Netzwerke und andere grundlegende Datenverarbeitungsressourcen bereitzustellen, wobei der Kunde beliebige Software bereitstellen und ausführen kann, zu der Betriebssysteme und Anwendungen gehören können. Der Kunde verwaltet oder steuert die unterlagerte Cloud-Infrastruktur nicht, hat aber die Kontrolle über Betriebssysteme, Speicherplatz sowie bereitgestellte Anwendungen und möglicherweise eine eingeschränkte Kontrolle über ausgewählte Vernetzungskomponenten (z.B. Host-Firewalls).
-
Die Bereitstellungsmodelle sind folgende:
- Private cloud (Private Cloud): Die Cloud-Infrastruktur wird ausschließlich für eine Organisation betrieben. Sie kann durch die Organisation oder einen Dritten verwaltet werden und in den Räumen der Organisation oder außerhalb davon vorhanden sein.
-
Community Cloud (Community-Cloud): Die Cloud-Infrastruktur wird von mehreren Organisationen genutzt und unterstützt eine bestimmte Benutzergemeinschaft, die gemeinsame Interessen hat (z.B. Gesichtspunkte im Zusammenhang mit einer Aufgabe, mit Sicherheitsanforderungen, Richtlinien und mit der Einhaltung von Gesetzen und Vorschriften). Sie kann durch die Organisation oder einen Dritten verwaltet werden und in den Räumen der Organisation oder außerhalb davon vorhanden sein.
-
Public cloud (Öffentliche Cloud): Die Cloud-Infrastruktur wird der allgemeinen Öffentlichkeit oder einer großen Gruppe in einem Industriezweig zur Verfügung gestellt und ist Eigentum einer Organisation, die Cloud-Dienste verkauft.
-
Hybrid cloud (Hybrid-Cloud): Die Cloud-Infrastruktur ist eine Mischung aus zwei oder mehreren Clouds (Private Cloud, Community Cloud oder Public Cloud), die eigenständige Einheiten bleiben, aber über eine standardisierte oder proprietäre Technologie miteinander verbunden sind, die die Portierbarkeit von Daten und Anwendungen ermöglicht (z.B. Cloud-Zielgruppenverteilung (Cloud Bursting) zum Lastausgleich zwischen Clouds).
-
Eine Cloud-Computing-Umgebung ist dienstorientiert, wobei der Schwerpunkt auf Zustandsunabhängigkeit, geringer Kopplung, Modularität und semantischer Interoperabilität liegt. Im Mittelpunkt des Cloud-Computing steht eine Infrastruktur, die ein Netzwerk aus untereinander verbundenen Knoten aufweist.
-
Unter Bezugnahme auf 7 ist dort eine veranschaulichende Cloud-Computing-Umgebung 50 dargestellt. Wie gezeigt ist, weist die Cloud-Computing-Umgebung 50 einen oder mehrere Cloud-Computing-Knoten 10 auf, mit denen durch Cloud-Kunden verwendete lokale Datenverarbeitungseinheiten wie z.B. ein Personal Digital Assistant (PDA) oder ein Mobiltelefon 54A, ein Desktop-Computer 54B, ein Notebook-Computer 54C und/oder ein Automobil-Computersystem 54N Daten austauschen können. Die Knoten 10 können untereinander Daten austauschen. Sie können physisch oder virtuell in einem oder mehreren Netzwerken wie zum Beispiel in einer hierin oben beschriebenen Private Cloud, Community Cloud, Public Cloud oder Hybrid Cloud oder in einer Kombinationen davon gruppiert sein (nicht dargestellt). Dies ermöglicht der Cloud-Computing-Umgebung 50, Infrastruktur, Plattformen und/oder Software als Dienste zu bieten, für die ein Cloud-Kunde keine Ressourcen auf einer lokalen Datenverarbeitungseinheit zu verwalten braucht. Es versteht sich, dass die Arten von Datenverarbeitungseinheiten 54A bis N, die in 7 dargestellt sind, als veranschaulichend gedacht sind, und dass die Datenverarbeitungsknoten 10 und die Cloud-Computing-Umgebung 50 über eine beliebige Art von Netzwerkverbindung und/oder netzwerkadressierbarer Verbindung (z.B. unter Verwendung eines Web-Browsers) mit einer beliebigen Art von computergestützter Einheit Daten austauschen können.
-
Unter Bezugnahme auf 8 ist dort ein Satz Funktionsabstraktionsschichten gezeigt, die durch die Cloud-Computing-Umgebung 50 (7) bereitgestellt werden. Im Vorhinein sollte es sich verstehen, dass die in 8 gezeigten Komponenten, Schichten und Funktionen nur zur Veranschaulichung gedacht und Ausführungsformen der Erfindung nicht auf diese beschränkt sind. Wie dargestellt ist, werden die folgenden Schichten und entsprechenden Funktionen bereitgestellt:
-
Eine Hardware- und Softwareschicht 60 umfasst Hardware- und Softwarekomponenten. Zu Beispielen von Hardware-Komponenten gehören: Großrechner 61; auf der RISC-Architektur beruhende Server 62 (RISC = Reduced Instruction Set Computer); Server 63; Blade-Server 64; Speichereinheiten 65; und Netzwerke und Vernetzungskomponenten 66. Bei einigen Ausführungsformen umfassen Softwarekomponenten eine Netzwerk-Anwendungsserversoftware 67 und eine Datenbanksoftware 68.
-
Eine Virtualisierungsschicht 70 stellt eine Absorptionsschicht bereit, von der aus die folgenden Beispiele von virtuellen Einheiten bereitgestellt sein können: virtuelle Server 71; virtueller Speicher 72; virtuelle Netzwerke 73 einschließlich virtueller privater Netzwerke; virtuelle Anwendungen und Betriebssysteme 74; und virtuelle Clients 75.
-
Bei einem Beispiel kann eine Verwaltungsschicht 80 die nachfolgend beschriebenen Funktionen bereitstellen. Eine Ressourcenbereitstellung 81 stellt eine dynamische Beschaffung von Datenverarbeitungsressourcen sowie anderen Ressourcen bereit, die genutzt werden, um Aufgaben innerhalb der Cloud-Computing-Umgebung durchzuführen. Eine Gebührenerfassung und Preisberechnung 82 stellt eine Kostenverfolgung bereit, während Ressourcen innerhalb der Cloud-Computing-Umgebung genutzt werden, sowie eine Abrechnung und Fakturierung des Verbrauchs dieser Ressourcen. Bei einem Beispiel können diese Ressourcen Anwendungssoftwarelizenzen aufweisen. Die Sicherheit stellt eine Identitätsüberprüfung bei Cloud-Kunden und Aufgaben sowie den Schutz für Daten und andere Ressourcen bereit. Ein Benutzerportal 83 stellt Kunden und Systemadministratoren einen Zugang zur Cloud-Computing-Umgebung bereit. Eine Dienstgüteverwaltung (Service Level Management) 84 stellt eine Zuordnung und Verwaltung von Cloud-Computing-Ressourcen bereit, sodass die jeweils erforderliche Dienstgüte erreicht wird. Eine Planung und Erfüllung von Dienstgütevereinbarungen 85 (Service Level Agreement (SLA), Servicevertrag) stellt die Vorausplanung für und die Beschaffung von Cloud-Computing-Ressourcen bereit, für die auf der Grundlage eines SLA zukünftige Anforderungen erwartet werden.
-
Eine Betriebslastschicht 90 stellt Beispiele von Funktionalitäten bereit, für die die Cloud-Computing-Umgebung genutzt werden kann. Zu Beispielen von Betriebslasten und Funktionen, die von dieser Ebene aus bereitgestellt werden können, gehören: Zuordnung und Navigation 91; Softwareentwicklung und -verwaltung 92 während des Lebenszyklus; Bereitstellung 93 von Schulungen in virtuellen Schulungsräumen; Verarbeitung 94 von Datenanalysen; Transaktionsverarbeitung 95 und Analyse 96 von Eingangsdaten.
-
Unter Bezugnahme auf 9 ist dort ein Datenverarbeitungssystem 900 veranschaulicht, das gemäß einer oder mehreren Ausführungsformen der Erfindung in der Lage ist, Rasterdaten- und Vektordatenformate zusammenzuführen. Das Datenverarbeitungssystem 900 kann einen Computer wie zum Beispiel einen Server, einen Notebook-Computer, einen Tablet-Computer, ein Telefon und der gleichen umfassen.
-
Das Datenverarbeitungssystem 900 umfasst neben anderen Komponenten einen Prozessor 905, einen Hauptspeicher 910, der mit einer Hauptspeichersteuereinheit 915 verbunden ist, und eine oder mehrere Eingabeeinheiten 945 und/oder Ausgabeeinheiten 940 wie zum Beispiel periphere Einheiten oder Steuereinheiten, die zu Datenaustauschzwecken über eine lokale E/A-Steuereinheit 935 verbunden sind. Zu diesen Einheiten 940 und 945 können zum Beispiel Batteriesensoren, Positionssensoren (Höhenmesser 40, Beschleunigungsmesser 42, GPS 44), Anzeigeleuchten und dergleichen gehören. Mit der E/A-Steuereinheit 935 können Eingabeeinheiten wie zum Beispiel eine herkömmliche Tastatur 950 und Maus 955 verbunden sein. Bei der E/A-Steuereinheit 935 kann es sich um einen oder mehrere Busse oder andere drahtgebundene oder drahtlose Verbindungen handeln, die in der Technik bekannt sind. Die E/A-Steuereinheit 935 kann weitere Elemente aufweisen, die aus Gründen der Einfachheit weggelassen wurden, beispielsweise Steuereinheiten, Puffer (Zwischenspeicher), Treiber, Repeater und Empfänger, um einen Datenaustausch zu ermöglichen.
-
Zu den E/A-Einheiten 940, 945 können ferner Einheiten gehören, die den Datenaustausch für sowohl Eingänge als auch Ausgänge realisieren, zum Beispiel ein Platten- und Bandspeicher, eine Netzwerkschnittstellenkarte (Network Interface Card, NIC), ein Modulator/Demodulator (zum Zugreifen auf andere Dateien, Einheiten, Systeme oder ein Netzwerk), ein Hochfrequenz-Transceiver (HF-Transceiver) oder ein anderer Transceiver, eine Telefonschnittstelle, eine Bridge, ein Router und dergleichen.
-
Bei dem Prozessor 905 handelt es sich um eine Hardwareeinheit zum Ausführen von Hardwareanweisungen oder Software, insbesondere den bzw. der, die im Arbeitsspeicher 910 gespeichert sind bzw. ist. Bei dem Prozessor 905 kann es sich unter mehreren zum Datenverarbeitungssystem 900 gehörenden Prozessoren um einen kundenspezifischen oder handelsüblichen Prozessor, eine Zentraleinheit (central processing unit, CPU), einen Hilfsprozessor, um einen auf Halbleitern beruhenden Mikroprozessor (in Form eines Mikrochips oder Chipsatzes), einen Makroprozessor oder eine andere Einheit zum Ausführen von Anweisungen handeln. Der Prozessor 905 umfasst einen Zwischenspeicher 970, der, ohne darauf beschränkt zu sein, einen Anweisungszwischenspeicher umfassen kann, um den Abruf ausführbarer Anweisungen zu beschleunigen, einen Datenzwischenspeicher, um den Abruf und die Speicherung von Daten zu beschleunigen, und einen Umsetzpuffer (translation lookaside buffer, TLB), der zur Beschleunigung der Umsetzung virtueller in physische Adressen sowohl bei ausführbaren Anweisungen als auch bei Daten verwendet wird. Der Zwischenspeicher 970 kann als Hierarchie aus mehreren Zwischenspeicherebenen (L1, L9 usw.) organisiert sein.
-
Der Hauptspeicher 910 kann ein flüchtiges Hauptspeicherelement oder Kombinationen aus flüchtigen Hauptspeicherelementen (zum Beispiel Direktzugriffsspeicher (random access memory, RAM) wie zum Beispiel DRAM, SRAM, SDRAM) und nichtflüchtige Hauptspeicherelemente (zum Beispiel ROM, löschbaren programmierbaren Nur-Lese-Speicher (erasable programmable read only memory, EPROM), elektronisch löschbaren programmierbaren Nur-Lese-Speicher (electronically erasable programmable read only memory, EEPROM), programmierbaren Nur-Lese-Speicher (programmable read only memory, PROM), Bandspeicher, Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), Platte, Diskette, Kassette, Bandkassette oder dergleichen) umfassen. Darüber hinaus kann der Hauptspeicher 910 elektronische, magnetische, optische und/oder andere Arten von Speichermedien umfassen. Zu beachten ist, dass der Hauptspeicher 910 eine verteilte Architektur aufweisen kann, bei der verschiedene Komponenten voneinander entfernt angeordnet sind, auf die der Prozessor 905 aber zugreifen kann.
-
Die Anweisungen im Hauptspeicher 910 können ein oder mehrere separate Programme umfassen, von denen jedes eine geordnete Auflistung ausführbarer Anweisungen zum Realisieren von Logikfunktionen aufweist. Bei dem Beispiel aus 9 umfassen die Anweisungen im Hauptspeicher 910 ein geeignetes Betriebssystem (BS) 911. Das BS 911 steuert im Wesentlichen die Ausführung anderer Computerprogramme und stellt eine Ablaufplanung, Eingabe-Ausgabe-Steuerung, Datei- und Datenverwaltung, Speicherverwaltung und Steuerung des Datenaustauschs sowie zugehörige Dienste bereit.
-
Weitere Daten, darunter zum Beispiel Anweisungen für den Prozessor 905 oder andere abrufbare Informationen, können im Speicher 990 gespeichert sein, bei dem es sich um eine Speichereinheiten wie zum Beispiel ein Festplattenlaufwerk oder ein Halbleiterlaufwerk handeln kann. Die gespeicherten Anweisungen im Hauptspeicher 910 oder im Speicher 990 können solche umfassen, die den Prozessor in die Lage versetzen, einen oder mehrere Aspekte der hierin beschriebenen Systeme und Verfahren auszuführen.
-
Das Datenverarbeitungssystem 900 kann ferner eine Anzeigesteuereinheit 995 umfassen, die mit einer Benutzeroberfläche oder Anzeige 930 verbunden ist. Bei einigen Ausführungsformen kann die Anzeige 930 ein LCD-Bildschirm sein. Bei anderen Ausführungsformen kann die Anzeige 930 eine Mehrzahl von LED-Statusleuchten umfassen. Bei einigen kann das Datenverarbeitungssystem 900 ferner eine Netzwerkschnittstelle 960 zum Verbinden mit einem Netzwerk 965 aufweisen. Bei dem Netzwerk 965 kann es sich um ein IP-Netzwerk zum Datenaustausch zwischen dem Datenverarbeitungssystem 900 und einem externen Server, Client und dergleichen über eine Breitbandverbindung handeln. Bei einer Ausführungsform kann es sich bei dem Netzwerk 965 um ein Satellitennetzwerk handeln. Das Netzwerk 965 sendet und empfängt zwischen dem Datenverarbeitungssystem 900 und externen Systemen übertragene Daten. Bei einigen Ausführungsformen kann es sich bei dem Netzwerk 965 um ein verwaltetes IP-Netzwerk handeln, das durch einen Dienstanbieter administriert wird. Das Netzwerk 965 kann in drahtloser Form realisiert sein, zum Beispiel unter Verwendung von Funkprotokollen und -technologien wie zum Beispiel WiFi, WiMax, Satellit oder beliebigen anderen. Bei dem Netzwerk 965 kann es sich außerdem um ein Netzwerk mit Paketvermittlung wie zum Beispiel ein lokales Netzwerk, ein Weitverkehrsnetzwerk, das Internet oder eine ähnliche Art von Netzwerkumgebung handeln. Bei dem Netzwerk 965 kann es sich um ein Fixed Wireless Network, ein drahtloses lokales Netzwerk (LAN), ein drahtloses Weitverkehrsnetzwerk (WAN), ein Personal Area Network (PAN), ein virtuelles privates Netzwerk (VPN), ein Intranet oder ein anderes geeignetes Netzwerksystem handeln, das Ausrüstungen zum Empfangen und Senden von Signalen umfasst.
-
Verschiedene Ausführungsformen der Erfindung sind hierin unter Bezugnahme auf die zugehörigen Zeichnungen beschrieben. Alternative Ausführungsformen können entwickelt werden, ohne vom Schutzbereich dieser Erfindung abzuweichen. Obwohl verschiedene Verbindungen und Positionsbeziehungen (z.B. über, unter, benachbart usw.) zwischen Elementen in der Beschreibung und in den Zeichnungen dargelegt, werden Fachleute jedoch erkennen, dass viele der hierin beschriebenen Positionsbeziehungen nicht von der Ausrichtung abhängig sind, wenn die beschriebene Funktionalität selbst bei geänderter Ausrichtung beibehalten wird. Sofern nichts anderes angegeben ist, können diese Verbindungen und/oder Positionsbeziehungen direkt oder indirekt sein, und die vorliegende Erfindung ist als in dieser Hinsicht nicht einschränkend zu betrachten. Dementsprechend kann ein Verbinden von Einheiten entweder ein direktes oder indirektes Verbinden bezeichnen, und eine Positionsbeziehung zwischen Einheiten kann eine direkte oder indirekte Positionsbeziehung sein. Als Beispiel einer indirekten Positionsbeziehung umfassen Bezugnahmen in der vorliegenden Beschreibung auf ein Bilden einer Schicht „A“ über einer Schicht „B“ Situationen, bei denen eine oder mehrere Zwischenschichten (z.B. Schicht „C“) zwischen Schicht „A“ und Schicht „B“ vorliegt bzw. vorliegen, solange die maßgeblichen Eigenschaften und Funktionalitäten von Schicht „A“ und Schicht „B“ durch die Zwischenschicht(en) im Wesentlichen nicht verändert werden.
-
Die folgenden Definitionen und Abkürzungen sind zur Interpretation der Ansprüche und der Beschreibung zu verwenden. Im hierin verwendeten Sinne sind die Begriffe „weist auf“, „aufweisend“, „umfasst“, „umfassend“, „enthält“ oder „enthaltend“ oder beliebige andere Variationen davon als nicht ausschließliche Einbeziehung gedacht. Beispielsweise ist eine Zusammensetzung, eine Mischung, ein Prozess, ein Verfahren, ein Artikel oder eine Vorrichtung, die eine Liste von Elementen aufweist, nicht zwangsläufig nur auf diese Elemente beschränkt, sondern kann andere Elemente umfassen, die nicht ausdrücklich aufgeführt oder für eine derartige Zusammensetzung, Mischung, einen derartigen Prozess, Artikel, ein derartiges Verfahren oder eine derartige Vorrichtung charakteristisch sind.
-
Darüber hinaus wird der Begriff „beispielhaft“ hierin in der Bedeutung von „als Beispiel, Exemplar oder der Veranschaulichung dienend“ verwendet. Beliebige Ausführungsformen oder Gestaltungsformen, die hierin als „beispielhaft“ beschrieben sind, sind nicht zwangsläufig als gegenüber anderen Ausführungsformen oder Gestaltungsformen bevorzugt oder vorteilhaft auszulegen. Die Begriffe „mindestens ein“ bzw. „mindestens eine“ und „ein(e) oder mehrere“ sind so zu verstehen, dass sie eine beliebige ganzzahlige Anzahl umfassen, die größer oder gleich eins ist, d.h. eins, zwei, drei, vier usw. Der Begriff „eine Mehrzahl“ ist so zu verstehen, dass er eine beliebige ganzzahlige Anzahl umfasst, die größer oder gleich zwei ist, d. h. zwei, drei, vier, fünf usw. Der Begriff „Verbindung“ kann eine indirekte „Verbindung“ und eine direkte „Verbindung“ umfassen.
-
Bezugnahmen in der Beschreibung auf „einer Ausführungsform“, „Ausführungsform“, „eine beispielhafte Ausführungsform“ usw. weisen darauf hin, dass die beschriebene Ausführungsform ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft umfassen kann, aber nicht jede Ausführungsform das betreffende Merkmal, die betreffende Struktur oder Eigenschaft umfassen kann. Darüber hinaus verweisen derartige Wortgruppen nicht zwangsläufig auf dieselbe Ausführungsform. Wenn ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, wird ferner unterstellt, dass Fachleuten bekannt ist, dass sich dies auf dieses Merkmal, diese Struktur oder Eigenschaft in Verbindung mit anderen Ausführungsformen unabhängig davon auswirkt, ob diese ausdrücklich beschrieben sind.
-
Im Sinne der Beschreibung betreffen die Begriffe „oberer/obere/oberes“, „unterer/untere/unteres“, „rechts“, „links“, „vertikal“, „horizontal“, „oben“ und Ableitungen davon die beschriebenen Strukturen und Verfahren entsprechend der Ausrichtung in den Figuren der Zeichnungen. Die Begriffe „überlagernd/überlagert“, „obenauf“, „an der Oberseite“, „positioniert auf“ oder „obenauf positioniert“ bedeuten, dass ein erstes Element wie zum Beispiel eine erster Struktur auf einem zweiten Element wie zum Beispiel einer zweiten Struktur vorliegt, wobei dazwischen vorliegende Elemente wie zum Beispiel eine Übergangsstruktur zwischen dem ersten Element und dem zweiten Element vorliegen kann. Der Begriff „elektrische Verbindung“ bezeichnet beliebige Mittel zum Übertragen eines elektrischen Signals von einem ersten Knoten zu einem zweiten Knoten, einschließlich und ohne darauf beschränkt zu sein, drahtgebundener Verbindungen und/oder drahtloser Verbindungen. Die Begriffe „ungefähr“, „im Wesentlichen“, „ca.“ und deren Variationen sind so zu verstehen, dass sie den mit der Messung der betreffenden Größe verbundenen Fehlergrad umfassen, der auf den zum Zeitpunkt der Einreichung der Anmeldung verfügbaren Ausrüstungen beruht. Beispielsweise kann der Begriff „ca.“ einen Bereich von ±8 % oder 5 % oder 2 % eines bestimmten Werts umfassen.
-
Der Kürze wegen sind Techniken, die die Datenbankspeicherung und - verarbeitung betreffen, hierin unter Umständen nicht ausführlich beschrieben. Beispielsweise können bestimmte Bilderkennungsalgorithmen und/oder Lernalgorithmen durch das geografisch-räumliche Datenbanksystem realisiert sein, um verschiedene Datenabfragen und -analysen durchzuführen. Obwohl bestimmte Operationen von Analysealgorithmen einzeln bekannt sein können, die beim Realisieren einer oder mehrerer Ausführungsformen der vorliegenden Erfindung verwendet werden, sind die beschriebene Kombination von Operationen und/oder sich daraus ergebende Strukturen der vorliegenden Erfindung einzigartig. Daher kann die einzigartige Kombination der Operationen, die in Verbindung mit geografisch-räumlichen Datenanalysen gemäß der vorliegenden Erfindung beschrieben sind, eine Vielfalt einzeln bekannter Operationen zur Datenverarbeitung und Datenanalyse realisieren, von denen einige hier beschrieben sind, während nach wie vor ein einzigartiges und neuartiges System bereitgestellt wird.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, auf der Anweisungen zur Verwendung durch eine Vorrichtung zur Ausführung von Anweisungen aufbewahrt und gespeichert sein können. Das durch Computer lesbare Speichermedium kann zum Beispiel, ohne auf diese beschränkt zu sein, eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination des Vorstehenden sein. Eine nicht erschöpfende Liste genauerer Beispiele des durch Computer lesbaren Speichermediums enthält Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine Digital Versatile Disc (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhöhte Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen oder beliebige geeignete Kombinationen des Vorstehenden. Ein computerlesbares Speichermedium im hierin verwendeten Sinne ist nicht so auszulegen, dass es sich dabei um flüchtige Signale handelt, beispielsweise um Funkwellen oder sich frei ausbreitende elektromagnetische Wellen, um elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z.B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen) oder um elektrische Signale, die über ein Kabel übertragen werden.
-
Hierin beschriebene durch Computer lesbare Programmanweisungen können über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk von einem durch Computer lesbaren Speichermedium auf betreffende Datenverarbeitungs-/Verarbeitungseinheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenleiter, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle bei jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch Computer lesbaren Programmanweisungen zur Speicherung in einem durch Computer lesbaren Speichermedium innerhalb der betreffenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie z.B. Smalltalk, C++ o.Ä. sowie prozedurale Programmiersprachen wie z.B. die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)). Bei einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Flussdiagramm-Darstellungen und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird klar sein, dass jeder Block der Flussdiagramme und/oder der Blockschemata und Kombinationen von Blöcken in den Flussdiagrammen und/oder Blockschemata durch Computerprogrammanweisungen realisiert werden kann bzw. können.
-
Diese durch Computer lesbaren Programmanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder anderer programmierbaren Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Flussdiagramms und/oder des Blockschemas angegebenen Funktionen/Aktionen zu realisieren. Diese durch Computer lesbaren Programmanweisungen können ebenfalls in einem durch Computer lesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass das durch Computer lesbare Medium mit darauf gespeicherten Anweisungen ein Erzeugnis aufweist, das Anweisungen enthält, die die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebene Funktion/Aktion realisieren.
-
Die durch Computer lesbaren Programmanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer, auf anderen programmierbaren Vorrichtungen oder Einheiten ausgeführt werden, die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebenen Funktionen/Aktionen realisieren.
-
Die Flussdiagramme und Blockschemata in den Figuren veranschaulichen die Architektur, Funktionalität und Wirkungsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Dementsprechend kann jeder Block in den Flussdiagrammen bzw. in den Blockschemata ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Realisierung der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Bei einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Beispielsweise können zwei hintereinander aufgeführte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach der mit den Blocken verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus anzumerken, dass jeder Block der Blockschemata und/oder der Flussdiagramme sowie Kombinationen aus Blöcken in den Blockschemata und/oder den Flussdiagrammen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, die die festgelegten Funktionen oder Schritte durchführen oder Kombinationen aus Spezialhardware und Computeranweisungen ausführen.
-
Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung sollen der Veranschaulichung dienen, sind jedoch nicht als vollständig oder auf die Erfindung in der beschriebenen Form beschränkt gedacht. Für den Fachmann sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzbereich der beschriebenen Ausführungsformen darstellen würden. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung bzw. die technische Verbesserung gegenüber den auf dem Markt vorgefundenen Technologien auf bestmögliche Weise zu erläutern bzw. anderen mit entsprechenden Fachkenntnissen das Verständnis der hierin beschriebenen Ausführungsformen zu ermöglichen.