-
Die vorliegende Offenbarung betrifft eine Analyse topographischer Daten. Spezieller betrifft die Offenbarung computerimplementierte Verfahren für eine Mehrfach-Sichtbereich-Analyse (multiple viewshed analysis).
-
Die in den folgenden Absätzen beschriebenen Lösungswege sind Lösungswege, die verfolgt werden könnten, jedoch handelt es sich nicht notwendigerweise um Lösungswege, die zuvor erdacht oder verfolgt wurden. Daher sollte man, wenn nicht anders angegeben, nicht davon ausgehen, dass es sich bei den in den folgenden Absätzen beschriebenen Lösungswegen nur aufgrund dessen, dass sie in diesem Dokument enthalten sind, um Stand der Technik handelt.
-
Ein Sichtbereich (viewshed) ist ein Gebiet, das von einem festen Betrachtungspunkt aus sichtbar ist. Bei computerbasierten Kartendarstellungen kann ein Sichtbereich ein Gebiet der Karte enthalten, das von einem bestimmten Punkt aus sichtbar ist. Ein digitales Höhenmodell (digital elevation model) kann in computerbasierten Kartensystemen erzeugt und gespeichert werden und enthält Höhendaten für Zellen innerhalb eines Gebietes. Bei einer üblichen Sichtbereichanalyse wird das digitale Höhenmodell verwendet, um zu bestimmen, ob eine freie Sichtlinie zwischen einer Betrachtungspunkt-Zelle und weiteren Zielzellen innerhalb des Gebietes besteht. Wenn eine Zelle mit einem größeren Höhenwert zwischen der Betrachtungspunkt-Zelle und einer Zielzelle liegt, dann ist die Sichtlinie blockiert, und die Zielzelle wird aus dem Sichtbereich der Sichtbereich-Zelle weggelassen.
-
Eine Sichtbereichanalyse für ein Objekt kann verwendet werden, um Zonen zu evaluieren, von denen aus das Objekt sichtbar ist, sowie auch Zonen zu evaluieren, die vom Objekt aus beobachtet werden können.
-
Eine Verwendung eines einzelnen Sichtbereiches hat militärische und zivile Anwendungen. Beispielsweise kann ein Sichtbereich verwendet werden, um eine Abdeckung eines vorhandenen oder potentiellen Turmstandortes zu evaluieren, beispielsweise eines Funkturms, eines Wachturms oder eines Beobachtungspunktes. Außerdem können Sichtbereiche zur Stadtplanung verwendet werden, beispielsweise um die Sichtbarkeit einer Sehenswürdigkeit zu erhalten, und um die Sichtbarkeit eines vorhandenen oder vorgeschlagenen Gebäudes zu evaluieren.
-
Die vorliegende Erfindung wird durch die unabhängigen Ansprüche bestimmt. Die abhängigen Ansprüche betreffen optionale Merkmale einiger Ausgestaltungen der Erfindung.
-
In den Zeichnungen veranschaulichen:
-
1 ein Ausführungsbeispiel einer Zone, die Merkmale betreffend Höhendaten enthält;
-
2 ein Ausführungsbeispiel von Höhendaten;
-
3 ein Ausführungsbeispiel einer Benutzerschnittstelle zum Eingeben von Objektinformation;
-
4 ein Ausführungsbeispiel einer interessierenden Zone mit einer freien Sichtlinie zu mehreren Objekten;
-
5 ein Ausführungsbeispiel einer interessierenden Zone ohne Sichtlinie zu mehreren Objekten;
-
6 ein Ablaufdiagramm, das ein Ausführungsbeispiel eines Verfahrens zum Bestimmen einer interessierenden Zone basierend auf Mehrfach-Sichtbereichen darstellt;
-
7 ein Ablaufdiagramm, das ein Ausführungsbeispiel eines Verfahrens zum Erstellen einer interessierenden Zone basierend auf Mehrfach-Sichtbereichen darstellt;
-
8 ein Ausführungsbeispiel einer graphischen Benutzerschnittstelle für eine Mehrfach-Sichtbereich-Analyse;
-
9 ein Ausführungsbeispiel einer graphischen Benutzerschnittstelle zum Erstellen einer navigationsgeeigneten dreidimensionalen Karte von Mehrfach-Sichtbereich-Analysedaten; und
-
10 ein Computersystem, auf dem eines oder mehrere Ausführungsbeispiele implementiert werden können.
-
In der folgenden Beschreibung sind zum Zweck der Erläuterung zahlreiche spezifische Details dargelegt, um für ein gründliches Verständnis der Erfindung zu sorgen. Es versteht sich jedoch, dass die Erfindung ohne diese speziellen Details ausgeführt werden kann. In anderen Fällen sind allgemein bekannte Strukturen und Vorrichtungen in Form eines Blockdiagramms dargestellt, um zu vermeiden, dass die Erfindung unnötigerweise unklar wird.
-
Ausführungsbeispiele werden hier gemäß der folgenden Gliederung beschrieben:
- 1. Allgemeiner Überblick
- 2. Höhendaten
- 3. Objektdaten
- 4. Berechnung der interessierenden Zone
- 5. Visualisierung
- 6. Hardware-Überblick
-
1. ALLGEMEINER ÜBERBLICK
-
Computerimplementierte Systeme und Verfahren für eine Mehrfach-Sichtbereich-Analyse werden bereitgestellt. Bei einem Ausführungsbeispiel wird eine Mehrzahl von Objektpositionen erhalten. Die Objektpositionen entsprechen Positionen von Ereignissen, Personen, Fahrzeugen, Strukturen, Vorrichtungen, Orten oder anderen praktikablen Objekten. Jeder Objektposition ist ein Bereich zugeordnet.
-
Wie hier verwendet bezieht sich der Begriff „Sichtbereich” (viewshed) auf eine Zone, die von einem bestimmten Ort aus sichtbar ist. Ein Sichtbereich für eine Objektposition kann unter Verwendung von Höhendaten bestimmt werden. Die Höhendaten werden verwendet, um eine Sichtlinie zwischen einer Objektposition und Punkten zu evaluieren, die sich innerhalb eines Bereiches der Objektposition befinden. Punkte, die von der Objektposition aus sichtbar sind, befinden sich im Sichtbereich der Objektposition.
-
Eine Mehrfach-Sichtbereich-Analyse wird über eine relevante Zone durchgeführt, welche die Objektpositionen enthält. Höhendaten werden für eine Mehrzahl von Punkten in einer relevanten Zone erhalten. Eine interessierende Zone wird durch Evaluieren von Sichtlinien zwischen den Objektpositionen und der Mehrzahl von Punkten in der relevanten Zone bestimmt, die innerhalb eines Bereiches der Objektpositionen liegen.
-
Die interessierende Zone beinhaltet eine Teilmenge der Punkte in der relevanten Zone. In einem Ausführungsbeispiel ist die interessierende Zone derart definiert, dass eine freie Sichtlinie zwischen der interessierenden Zone und jeder der Objektpositionen innerhalb der zugehörigen Bereiche vorhanden ist. Bei einem Ausführungsbeispiel wird dieser Typ von interessierender Zone verwendet, um eine gemeinsame Ursache, einen Eindringling oder eine andere Verbindung zwischen den zu den Objektpositionen gehörenden Objekten zu bestimmen.
-
Bei einem weiteren Ausführungsbeispiel ist die interessierende Zone derart definiert, dass keine freie Sichtlinie zwischen der interessierenden Zone und irgendeiner der Objektpositionen innerhalb der zugehörigen Bereiche vorhanden ist.
-
Computerimplementierte Systeme und Verfahren werden auch bezüglich Benutzerschnittstellen zur Durchführung einer Mehrfach-Sichtbereich-Analyse und zur Betrachtung von Mehrfach-Sichtbereich-Analyseergebnissen bereitgestellt. Eine graphische Benutzerschnittstelle kann bereitgestellt werden, um eine Objekteingabe zu erleichtern. Es können auch Kartierungswerkzeuge bereitgestellt werden, um eine Mehrfach-Sichtbereich-Analyse zu erleichtern. Eine navigationsgeeignete dreidimensionale Karte kann erstellt werden, um die interessierende Zone im Kontext der Höhendaten anzuzeigen.
-
2. HÖHENDATEN
-
Eine Mehrfach-Sichtbereich-Analyse kann in einer relevanten Zone durchgeführt werden, die eine oder mehrere Objektpositionen enthält, die zu interessierenden Objekten gehören. Die relevante Zone kann jeden Punkt innerhalb des Bereiches einer oder mehrerer Objektpositionen beinhalten. Alternativ oder zusätzlich kann die relevante Zone Punkte außerhalb des Bereiches jeglicher Objektposition beinhalten. Die relevante Zone kann auch innerhalb des Bereiches irgendeiner Objektposition liegende Punkte ausschließen.
-
Um eine Mehrfach-Sichtbereich-Analyse in einem Gebiet durchzuführen, werden Höhendaten für das Gebiet benötigt. Höhendaten werden für eine Mehrzahl von Punkten in einer relevanten Zone erhalten. 1 zeigt eine Beispielzone, die Merkmale betreffend Höhendaten enthält, welche beim Beschreiben eines Ausführungsbeispiels von computerimplementierten Verfahren für eine Mehrfach-Sichtbereich-Analyse nützlich sein können. Ansicht 100 ist eine Draufsicht eines Gebietes, das eine Mehrzahl von Merkmalen 102–110 enthält, die in den Höhendaten repräsentiert sein können. Die Merkmale 102–110 können künstlich hergestellte Merkmale 102–106, Geländemerkmale 108–110 oder beliebige Kombinationen von diesen beinhalten.
-
Höhendaten können in einer oder mehreren Datenquellen gespeichert werden. Bei einem Ausführungsbeispiel werden Höhendaten, die für eine Mehrfach-Sichtbereich-Analyse verwendet werden, durch Kombinieren von Höhendaten über einem allgemeinen Bezugspunkt (elevation data) und/oder Höhendaten über Grund (height data) aus mehreren Quellen erzeugt. Beispielsweise können zu einem Merkmal gehörige Daten verwendet werden, um Höhendaten aus einer anderen Datenquelle zu modifizieren, beispielsweise wenn die Höhendaten aus der anderen Quelle das Merkmal nicht wiedergeben. Die Höhendaten können bereits Höheninformation betreffend eines oder mehrerer Merkmale beinhalten. Öffentliche Kartendatenquellen können als Startpunkt verwendet werden.
-
Die künstlich hergestellten Merkmale 102, 104, 106 können jede beliebige künstlich hergestellte Struktur beinhalten, beispielsweise Gebäude, Türme, Wände, Straßen, Brücken, Plattformen, im Wasser befindliche Strukturen, in der Luft befindliche Strukturen, und beliebige andere künstlich hergestellte Strukturen. Die künstlich hergestellten Merkmale 102–106 können an Land und/oder im Wasser befestigt sein. Alternativ oder zusätzlich können die künstlich hergestellten Merkmale 102–106 halbbeweglich oder vollständig beweglich sein. Bei einem Ausführungsbeispiel beinhalten Höhendaten über einem allgemeinen Bezugspunkt (elevation data) für die künstlich hergestellten Merkmale 102–106 Höhendaten über Grund (height data) für Merkmale, die sich an festen Positionen befinden. Alternativ oder zusätzlich können Höhendaten über einem allgemeinen Bezugspunkt für künstlich hergestellte Merkmale Höhendaten über Grund und/oder weitere Dimensionen beinhalten, die mit Positions- und/oder Orientierungsdaten verwendet werden können, um Höhendaten für eine Mehrfach-Sichtbereich-Analyse zu erzeugen.
-
Die Geländemerkmale 108–110 können beliebige geologische und/oder natürliche Merkmale beinhalten, beispielsweise Berge, Klippen, Hügel, Ebenen, Täler, Oberflächen eines Wasserkörpers und/oder ein beliebiges anderes geologisches oder topographisches Merkmal beinhalten.
-
Zu den Merkmalen 102–110 gehörige Daten können aus einer oder mehreren Datenbanken erhalten werden. Obwohl zwischen den künstlich hergestellten Merkmalen 102–106 und den Geländemerkmalen 108–110 unterschieden wird, können eine oder mehrere Datenbanken, die den Merkmalen 102–110 zugehörige Daten enthalten, sowohl die künstlich hergestellten Merkmale 102–106 als auch die Geländemerkmale 108–110 beinhalten. Alternativ oder zusätzlich können Höhendaten, die unterschiedlichen Merkmalstypen zugehörig sind, aus unterschiedlichen Datenbanken erhalten werden.
-
Eines oder mehrere der Merkmale 102–110 kann eine Eigenschaft besitzen, die entweder als künstliches Merkmal oder als Geländemerkmal klassifiziert werden kann, beispielsweise eine Baugrube, ein Steinbruch, ein Damm oder eine beliebige andere künstliche Modifikation eines natürlichen Geländes.
-
2 stellt ein partielles Beispiel von Höhendaten dar, die beim Beschreiben eines Ausführungsbeispiels von computerimplementierten Verfahren für eine Mehrfach-Sichtbereich-Analyse von Nutzen sein können. Im Beispiel von 2 entsprechen beispielhafte Höhendaten 200 einem Gebiet A von 1. Die Höhendaten 200 beinhalten Höhenwerte 202 für eine Mehrzahl von Punkten (x, y) im Gebiet A von 1. Obschon die Notation (x, y, z) hier verwendet werden kann, um einen Bezug zu einer speziellen Koordinate (x, y) mit einer Höhe von z herzustellen, ist es nicht erforderlich, (x, y) und z in einer Datenstruktur für einen dreidimensionalen Datenpunkt zu speichern, und ein beliebiges geeignetes Speicherformat kann verwendet werden. Auch wenn der Einfachheit halber die Höhendaten 200 als ein zweidimensionales Feld dargestellt sind, können die Höhendaten 200 unter Verwendung einer beliebigen Darstellung gespeichert werden, die zum Speichern von Höhendaten geeignet ist.
-
Bei einem Ausführungsbeispiel sind die Position eines Objektes und Punkte, die anderen Positionen entsprechen, in einem geographischen Koordinatensystem definiert, wie beispielsweise geographische Breiten- und Längenwerte, die auf einem/einer beliebigen geodätischen System oder Bezugsgröße basieren, in dem MGRS-System (MGRS = Military Grid Reference), dem UTM-Gittersystem (UTM = Universal Transverse Mercator), dem UPS-Gittersystem (UPS = Universal P Stereographic), oder einer beliebigen Kombination von diesen.
-
Die Höhenwerte 202 geben die Höhe bei einem Punkt (x, y) an. Bei einigen geographischen Koordinatensystemen sind die Höhenwerte 202 in geographischen Koordinaten enthalten. Die Höhenwerte 202 können in einer beliebigen Einheit basierend auf einem beliebigen Bezugspunkt angegeben sein. Beispielsweise ist ein üblicher Bezugspunkt für Höhendaten die Meereshöhe. Alternativ oder zusätzlich können Höhenwerte bezogen auf einen Punkt innerhalb eines speziellen Kartenbezugswertes, der einen bekannten festen Wert hat, angegeben werden.
-
Die Höhendaten 200 können aus einer oder mehreren Datenbanken erhalten werden. Die aus einer Datenbank erhaltenen Höhendaten können bereits Daten enthalten, die einem oder mehreren Merkmalen zugehörig sind. Beispielsweise wird die einem Geländemerkmal 108 zugehörige Neigung in dem nicht-schraffierten Abschnitt von den Höhendaten 200 wiedergegeben.
-
Daten, die einem oder mehreren Merkmalen zugehörig sind, können verwendet werden, um Höhendaten zu modifizieren, beispielsweise wenn die Höhendaten kein Merkmal wiedergeben. Beispielsweise enthält der schraffierte Abschnitt 204 der Höhendaten 200 Höhenwerte, die modifiziert sind, um die Abmessungen der Struktur wiederzugeben, die dem künstlich hergestellten Merkmal 106 zugehörig ist.
-
3. OBJEKTDATEN
-
Eine Mehrfach-Sichtbereich-Analyse wird mittels einer Computeranalyse von Sichtlinien zwischen in einer relevanten Zone befindlichen Punkten und mehreren Objektpositionen durchgeführt. Die Objektpositionen können Positionen von Objekten entsprechen, beispielsweise Ereignissen, Personen, Fahrzeugen, Strukturen, Vorrichtungen, Orten oder anderen praktikablen Objekten. Bei einem Ausführungsbeispiel entsprechen eines oder mehrere Objekte Beobachtungspunkten, beispielsweise einem vorhandenen oder potentiellen Aussichtspunkt, einer Position von Personal, Positionen von Fahrzeugen oder Dingen, einer Geräteinstallation, einer Struktur, oder einem anderen Ort. Alternativ oder zusätzlich können eines oder mehrere Objekte beobachteten Ereignissen entsprechen, beispielsweise einem Schussereignis, einer Explosion, einem Angriff, einem Foto, einer Kommunikation, einem Video, einem Bericht oder irgendeinem anderen beobachtbaren Ereignis.
-
Objektinformation kann von einer Datenquelle, wie beispielsweise einer Datenbank, einer Datei, einem Datenstrom oder von irgendeiner anderen Quelle von Objektinformation erhalten werden. Öffentliche Datenbanken können verwendet werden. Private Datenbanken können verwendet werden, einschließlich, jedoch nicht eingeschränkt auf den Typ eines Datenlagers (repository), das in Palantir Gotham verwendet wird, kommerziell verfügbar von Palantir Technologies, Inc., Palo Alto, Kalifornien. Bei einem Ausführungsbeispiel wird Objektinformation durch einen Benutzer über eine Benutzerschnittstelle eingegeben. 3 stellt ein Ausführungsbeispiel einer Benutzerschnittstelle zum Eingeben von Objektinformation dar.
-
Die Benutzerschnittstelle 300 ist konfiguriert, um eines oder mehrere Elemente, die einer Eigenschaft eines Objektes entsprechen, anzuzeigen und/oder deren Eingabe zu ermöglichen. Die Benutzerschnittstelle 300 beinhaltet ein Namenelement 302. Das Namenelement 302 ermöglicht einem Benutzer, eine Kennung für ein Objekt einzugeben. Die Benutzerschnittstelle 300 beinhaltet weiter ein Positionselement 304. Das Positionselement 304 ermöglicht einem Benutzer, dem Objekt eine Position zuzuordnen. Bei einem Ausführungsbeispiel ist die Position eine geographische Koordinate in einem beliebigen geographischen Koordinatensystem. Bei einem Ausführungsbeispiel kann das Positionselement 304 einem Benutzer ermöglichen, eine geographische Koordinate über eine Kartenschnittstelle, eine geographische Suchschnittstelle, oder eine beliebige andere Schnittstelle einzugeben, die konfiguriert ist, um den Benutzer beim Zuordnen einer Position zu dem Objekt zu unterstützen. Beispielsweise kann die Benutzerschnittstelle 300 angezeigt werden, nachdem ein Ort auf einer Karte gewählt wurde, derart, dass die Position des gewählten Ortes im Positionselement 304 angezeigt wird.
-
Die Benutzerschnittstelle 300 beinhaltet weiter ein Bereichselement 306. Das Bereichselement 306 ermöglicht einem Benutzer, dem Objekt einen Bereich zuzuordnen. Bei einem Ausführungsbeispiel ist der Bereich einer Objektposition durch einen Radius ausgehend von der Objektposition definiert. Der Bereich kann auch durch eine oder mehrere andere Formeln, Kurven, Polygone, Linien, Kanten oder ein beliebiges anderes Verfahren angegeben sein, das zum Definieren eines Bereiches der Objektposition geeignet ist. Im Fall eines durch einen Radius definierten Bereiches werden innerhalb des Radius befindliche Punkte evaluiert, um zu bestimmen, ob es eine freie Sichtlinie zwischen einem speziellen Punkt und der Objektposition gibt.
-
Innerhalb eines Bereiches der Objektposition liegende Punkte können basierend auf einer zweidimensionalen Abstandsberechnung oder einer dreidimensionalen Abstandsberechnung bestimmt werden. Beispielsweise kann für eine Objektposition (x, y, z) mit einem Bereich von 1000, ein Punkt (x, y + 1000, z) basierend sowohl auf einer zweidimensionalen Ab standsberechnung als auch einer dreidimensionalen Abstandsberechung eingeschlossen sein, hingegen kann ein Punkt (x, y + 1000, z + 1000) basierend auf einer zweidimensionalen Abstandsberechung eingeschlossen sein, ist jedoch basierend auf einer dreidimensionalen Abstandsberechnung ausgeschlossen.
-
Bei einem Ausführungsbeispiel beinhaltet das Bereichselement 306 eine Horizontal-Betrachtungswinkel-Beschränkung und/oder eine Vertikal-Betrachtungswinkel-Beschränkung, die einem Objekt zugeordnet werden kann. Ein Standardwert für die Horizontal-Betrachtungswinkel-Beschränkung und/oder ein Standardwert für die Vertikal-Betrachtungswinkel-Beschränkung kann für einen oder mehrere Objekttypen bereitgestellt werden. Bei einem Ausführungsbeispiel sind einem oder mehreren Objekttypen standardmäßig keine Betrachtungswinkelbeschränkungen zugeordnet.
-
Bei einem Ausführungsbeispiel wird der Bereich basierend auf einem Objekttyp bestimmt. Beispielsweise kann, wenn das Objekt einem Sehvermögen eines bloßen menschlichen Auges entspricht, ein Standardwert für den Bereich basierend auf der Reichweite des menschlichen Sehvermögens bestimmt werden. Wenn das Objekt einer Bildgebungsvorrichtung entspricht, kann ein Standardwert für den Bereich basierend auf der Reichweite des Gerätes bestimmt werden, einschließlich jeglicher Horizontal-Betrachtungswinkel-Beschränkung und/oder Vertikal-Betrachtungswinkel-Beschränkung. Alternativ oder zusätzlich kann der Bereich basierend auf einer oder mehreren lokalen Bedingungen bestimmt und/oder modifiziert werden, wie beispielsweise Wetter, Verschmutzung, Feuchtigkeit und/oder jegliche lokale Bedingung, welche die Sicht beeinflussen kann. Bei einem Ausführungsbeispiel wird die lokale Bedingung basierend auf einer dem Objekt zugehörigen Zeit bestimmt.
-
Die Benutzerschnittstelle 300 beinhaltet weiter ein Höhenelement 308. Das Höhenelement 308 ermöglicht einem Benutzer, dem Objekt einen Höhenwert zuzuordnen. Bei einem Ausführungsbeispiel kann der dem Objekt zugehörige Wert ein Wert bezogen auf die Höhe der Objektposition sein. Alternativ oder zusätzlich kann der zum Objekt gehörige Höhenwert ein Wert sein, der die Höhe der Objektposition beinhaltet. Beispielsweise kann, wenn das Objekt ein 10 m hoher Turm ist und die Objektposition des Objektes eine Höhe von 100 m über Meereshöhe hat, der passende Höhenwert des Objekts 10 m (bezogen auf die Objektposition) oder 110 m (bezogen auf Meereshöhe) sein. Ein Standard-Höhenwert kann für das Höhenelement 308 bereitgestellt werden. Bei einem Ausführungsbeispiel ist der Standard-Höhenwert eines Objektes 0, bezogen auf die Objektposition.
-
Die Benutzerschnittstelle 300 beinhaltet weiter ein Zeitelement 310. Das Zeitelement 310 ermöglicht einem Benutzer, dem Objekt eine Zeitinformation zuzuordnen. Die dem Objekt zugeordnete Zeitinformation kann Zeit, Zeitzone und/oder Datumsinformation beinhalten. Bei einem Ausführungsbeispiel kann eine partielle Zeitinformation eingegeben werden. Beispielsweise kann ein Benutzer durch das Zeitelement 310 festlegen, dass das Objekt einer Zeit entweder während des Tages oder während der Nacht zugeordnet ist. Die dem Objekt zugeordnete Information kann verwendet werden, um einen Standardwert für den der Vorrichtung zugeordneten Bereich zu bestimmen. Beispielsweise kann die Zeitinformation verwendet werden, um eine oder mehrere lokale Bedingungen zu bestimmen, beispielsweise natürliche Beleuchtungsbedingungen, Wetter, Verschmutzung, Feuchtigkeit oder eine beliebige andere lokale Bedingung zu der dem Objekt zugeordneten Zeit.
-
Die Benutzerschnittstelle 300 beinhaltet weiter ein Typ-Element 312. Das Typ-Element 312 ermöglicht einem Benutzer, dem Objekt eine Objektklassifikation zuzuordnen. Objektklassifikationen können verwendet werden, um anzugeben, dass ein Objekt ein Ereignis, eine Person, ein Fahrzeug, eine Struktur, eine Vorrichtung, ein Ort oder ein beliebiger anderer Typ von Objekt ist. Einer Objektklassifikation können einer oder mehrere Standardwerte für eine oder mehrere Objekteigenschaften zugeordnet werden. Die Objektklassifikation kann eine oder mehrere Unterklassen-Ebenen beinhalten, die hierarchisch angeordnet sind.
-
4. BERECHNUNG EINER INTERESSIERENDEN ZONE
-
Eine Mehrfach-Sichtbereich-Analyse wird in der relevanten Zone durchgeführt, um eine interessierende Zone zu bestimmen. Die interessierende Zone wird durch Evaluieren von Sichtlinien zwischen den Objektpositionen und der Mehrzahl von Punkten in der relevanten Zone bestimmt, die innerhalb des Bereiches der Objektpositionen liegen. Die Analyse ist eine computerbasierte Analyse unter Verwendung eines oder mehrerer Computerprogramme, weiteren Software-Elementen oder weiteren Logikelementen, und zwar mit einem Universalcomputer oder einem Spezialcomputer, und die interessierende Zone kann basierend auf einem Umwandeln von Datenwerten im elektronischen digitalen Speicher erzeugt und verwendet werden.
-
Die interessierende Zone kann für Zwecke wie beispielsweise Bestimmen eines wahrscheinlichen Ortes einer zu den Objekten gehörenden Quelle verwendet werden. Beispielsweise können die Objekte Angriffsereignissen entsprechen, einschließlich Scharfschützenangriffen, Detonationen von improvisierten explosiven Vorrichtungen (IED) und anderen Angriffen oder Explosionen. Die Analyse kann die wahrscheinliche Position einer Quelle der Angriffsereignisse liefern, beispielsweise einen Ort eines Scharfschützen, einen Aussichtspunkt oder eine andere Quelle der Angriffe. Die Analyse kann auch Information betreffend Abdeckung und Verstecke liefern, einschließlich Information, die für Ort-, Routen- und Einsatzplanung verwendet werden kann.
-
4 zeigt ein Ausführungsbeispiel einer interessierenden Zone mit einer freien Sichtlinie zu mehreren Objekten. Bei einem Ausführungsbeispiel ist die interessierende Zone derart definiert, dass eine freie Sichtlinie zwischen der interessierenden Zone und jeder der Objektpositionen innerhalb der zugehörigen Bereiche vorhanden ist. Bei einem Ausführungsbeispiel wird dieser Typ von interessierender Zone verwendet, um eine gemeinsame Ursache, einen Eindringling oder eine andere Verbindung zwischen den Objekten zu bestimmen, die den Objektpositionen zugehörig sind.
-
Zwei Objekte befinden sich innerhalb einer relevanten Zone 400. Das erste Objekt gehört zu einer Objektposition 402 und einem Bereich 404. Das zweite Objekt gehört zu einer Objektposition 408 und einem Bereich 440. Sichtbereich 406 ist ein Sichtbereich, der dem ersten Objekt zugehörig ist und alle Punkte mit einer freien Sichtlinie von der Objektposition 402 innerhalb des Bereichs 404 beinhaltet. Sichtbereich 408 ist ein Sichtbereich, der dem zweiten Objekt zugehörig ist und alle Punkte mit einer freien Sichtlinie von der Objektposition 408 innerhalb des Bereichs 410 beinhaltet.
-
Die interessierende Zone 414 beinhaltet alle Punkte in der relevanten Zone 400 mit einer freien Sichtlinie sowohl zu der Objektposition 402 als auch zu der Objektposition 408. Bei einem Ausführungsbeispiel wird die interessierende Zone 414 basierend auf einer Schnittmenge von Sichtbereich 406 und Sichtbereich 412 berechnet. Ein Sichtbereich wird durch Evaluieren der Sichtlinie zwischen der Objektposition und allen Punkten innerhalb des Bereiches erzeugt, und zwar basierend auf Höheninformation für Punkte, die zwischen der Objektposition und einem beliebigen spezifischen Punkt liegen. Der Sichtbereich 406 und der Sichtbereich 412 können separat berechnet werden, bevor eine Schnittoperation durchgeführt wird. Alternativ oder zusätzlich kann, wenn die interessierende Zone 414 eine Sichtbarkeit aller spezifizierter Objekte erfordert, die Berechnung auf Punkte innerhalb eines Bereiches aller Objektpositionen eingeschränkt werden.
-
Bei einem Ausführungsbeispiel wird die interessierende Zone 414 basierend auf einem binären Sichtbarkeitswert berechnet. Wenn ein binärer Sichtbarkeitswert verwendet wird, ist die Sichtlinie zwischen einem ersten Punkt und einem zweiten Punkt entweder frei sichtbar oder nicht. Im sichtbaren Lichtspektrum, oder nahe des sichtbaren Lichtspektrums, kann ein binärer Sichtbarkeitswert für die Sichtbarkeit und/oder Bildgebung geeignet sein. Die Sichtbarkeit kann auch unter Verwendung von Wahrscheinlichkeitswerten dargestellt werden, beispielsweise wenn die Sichtbarkeit längerer elektromagnetischer Wellen, beispielsweise Funkwellen, evaluiert wird.
-
Bei einem Ausführungsbeispiel wird die interessierende Zone 414 basierend auf der binären Anforderung bestimmt, dass eine freie Sichtlinie zwischen jedem Punkt in der interessierenden Zone und jeder der Objektpositionen 402 und 408 vorhanden ist. Alternativ oder zusätzlich kann die interessierende Zone 414 mit nicht-binären Werten berechnet werden, um wiederzugeben, dass eine freie Sichtlinie zwischen jedem Punkt und einer oder mehreren der Objektpositionen vorhanden ist. Beispielsweise kann eine nicht-binäre interessierende Zone ein Gebiet 414 beinhalten, von dem aus beide Objektpositionen 402 und 408 sichtbar sind, und Gebiete 406 und 412, von denen aus eine der Objektpositionen 402 und 408 sichtbar ist. Auch wenn 4 ein Beispiel darstellt, bei dem zwei Objekte beteiligt sind, kann bei einem Ausführungsbeispiel eine Mehrfach-Sichtbereich-Analyse für eine beliebige Anzahl von Objekten durchgeführt werden.
-
5 zeigt ein Ausführungsbeispiel einer interessierenden Zone ohne Sichtlinie zu mehreren Objekten. Bei einem Ausführungsbeispiel ist die interessierende Zone derart definiert, dass keine freie Sichtlinie zwischen der interessierenden Zone und irgendeiner der Objektpositionen innerhalb der zugehörigen Bereiche vorhanden ist.
-
Zwei Objekte befinden sich innerhalb einer relevanten Zone 514. Das erste Objekt gehört zu einer Objektposition 502 und einem Bereich 504. Das zweite Objekt gehört zu einer Objektposition 508 und einem Bereich 510. Sichtbereich 506 ist ein Sichtbereich, der zu dem ersten Objekt gehört und alle Punkte mit einer freien Sichtlinie von der Objektposition 502 innerhalb des Bereichs 504 beinhaltet. Sichtbereich 512 ist ein Sichtbereich, der zum zweiten Objekt gehört und alle Punkte mit einer freien Sichtlinie von der Objektposition 508 innerhalb des Bereichs 510 beinhaltet.
-
Die interessierende Zone 516 beinhaltet alle Punkte in einer relevanten Zone 514 ohne Sichtlinie zu irgendeinem angegebenen Objekt. Der Sichtbereich 506 und der Sichtbereich 512 können separat berechnet werden, bevor nicht-überlappende Gebiete bestimmt werden. Alternativ oder zusätzlich kann, wenn die interessierende Zone 516 eine fehlende Sichtbarkeit von jeglichem Objekt aus erfordert, die Berechnung auf Punkte in der interessierenden Zone 516 innerhalb eines Bereiches einer Objektposition beschränkt werden, welche außerhalb jeglichem zuvor berechneten Sichtbereich liegen.
-
Bei einem Ausführungsbeispiel wird die interessierende Zone 516 basierend auf einem binären Sichtbarkeitswert berechnet. Wenn ein binärer Sichtbarkeitswert verwendet wird, ist die Sichtlinie zwischen einem ersten Punkt und einem zweiten Punkt entweder frei sichtbar, oder nicht. Im sichtbaren Lichtspektrum, oder nahe des sichtbaren Lichtspektrums, kann ein binärer Sichtbarkeitswert für die Sichtbarkeit und/oder Bildgebung geeignet sein. Die Sichtbarkeit kann auch unter Verwendung von Wahrscheinlichkeitswerten dargestellt werden, beispielsweise wenn die Sichtbarkeit längerer elektromagnetischer Wellen, beispielsweise Funkwellen, evaluiert wird.
-
Bei einem Ausführungsbeispiel wird die interessierende Zone 516 basierend auf der binären Anforderung bestimmt, dass keine freie Sichtlinie zwischen jedem Punkt in der interessierenden Zone und jeder der Objektpositionen 502 und 508 vorhanden ist. Alternativ oder zusätzlich kann die interessierende Zone 516 mit nicht-binären Werten berechnet werden, um wiederzugeben, dass keine freie Sichtlinie zwischen jedem Punkt und einer oder mehreren der Objektpositionen vorhanden ist. Beispielsweise kann eine nicht-binäre interessierende Zone ein Gebiet 516 beinhalten, von dem aus keine der Objektpositionen 502 und 508 sichtbar ist, und Gebiete innerhalb der interessierenden Zone 516, von denen aus eine der Objektpositionen 502 und 508 sichtbar ist.
-
6 ist ein Ablaufdiagramm, das ein Ausführungsbeispiel eines Verfahrens zur Bestimmung einer interessierenden Zone basierend auf Mehrfach-Sichtbereichen darstellt. Ein derartiges Verfahren kann mittels einer oder mehreren Berechnungsvorrichtungen durchgeführt werden, die als Universalcomputer oder Spezialcomputer konfiguriert sind, und unter Verwendung eines oder mehrerer Computerprogramme oder anderer Softwareelemente, die bei Ausführung bewirken, dass die in 6 gezeigten Operationen durchgeführt werden. Beispielsweise können ein oder mehrere Schritte des Verfahrens durch ein Computersystem 1000 durchgeführt werden, wie später noch beschrieben wird. Diese Operationen beinhalten Speichern, Abrufen und Umwandeln von Datenwerten im elektronischen digitalen Speicher mit dem Effekt eines Umwandelns des physikalischen Zustands des Speichers gemäß den beschriebenen Operationen. Weiter setzen die Operationen von 6 voraus, dass ein Datensatz, der eine Karte oder andere geographische Daten repräsentiert, bei einer Bestimmung von Zonen, Bereichen und weiteren Werten zur Verfügung steht.
-
In Block 602 wird eine Mehrzahl von Objektpositionen erhalten. Objektpositionen können von einer beliebigen Datenquelle erhalten werden, beispielsweise einer Datenbank, einer Datei, einem Datenstrom oder einer beliebigen anderen Quelle von Objektdaten. Bei einem Ausführungsbeispiel wird Objektinformation durch einen Benutzer über eine Benutzerschnittstelle eingegeben. Die Objektpositionen können geographische Koordinaten sein, die in einem geographischen Koordinatensystem definiert sind. Bei einem Ausführungsbeispiel entspricht mindestens eine der Objektpositionen dem Ort eines Ereignisses.
-
In Block 604 wird jeder Objektposition ein Bereich zugeordnet. Bei einem Ausführungsbeispiel ist der Bereich durch einen Radius ausgehend von der Objektposition definiert. Der Bereich kann auch durch eine oder mehrere weitere Formeln, Kurven, Polygone, Linie, Kanten oder ein beliebiges anderes Verfahren spezifiziert werden, das zum Definieren eines Bereiches der Objektposition geeignet ist. Bei einem Ausführungsbeispiel wird der Bereich basierend auf einem Objekttyp bestimmt. Ein Standardwert für den Bereich kann basierend auf dem Objekttyp bestimmt werden. Alternativ oder zusätzlich kann der Bereich basierend auf einer oder mehreren lokalen Bedingungen bestimmt und/oder modifiziert werden, wie beispielsweise Wetter, Verschmutzung, Feuchtigkeit und/oder eine beliebige lokale Bedingung, die eine Sichtbarkeit beeinflussen kann. Bei einem Ausführungsbeispiel ist der Standardwert für den Bereich die Grenze der relevanten Zone, in welcher eine Mehrfach-Sichtbereich-Analyse durchgeführt wird.
-
In Block 606 wird eine relevante Zone bestimmt. Die relevante Zone kann jeden Punkt innerhalb des Bereiches einer oder mehrerer Objektpositionen beinhalten. Alternativ oder zusätzlich kann die relevante Zone Punkte außerhalb des Bereiches einer beliebigen Objektposition beinhalten. Die relevante Zone kann auch Punkte ausschließen, die innerhalb des Bereiches einer beliebigen Objektposition liegen.
-
In Block 608 werden Höhendaten für eine Mehrzahl von Punkten in der relevanten Zone erhalten. Bei einem Ausführungsbeispiel wird die Mehrzahl von Punkten basierend auf einer gewünschten Granularität ausgewählt. Die Granularität kann basierend auf der Granularität der verfügbaren Höhendaten angepasst werden. Bei einem Ausführungsbeispiel wird die Granularität basierend auf einer Berechnungskomplexität und/oder verfügbaren Berechnungsressourcen angepasst. Alternativ oder zusätzlich kann eine Verarbeitung der verfügbaren Höhendaten erfolgen, um die Granularität der verfügbaren Höhendaten anzupassen. Beispielsweise können die verfügbaren Höhendaten herunterskaliert werden, und zwar unter Verwendung eines oder mehrerer mathematischer Verfahren, um die Granularität anzupassen. Eine unterschiedliche Granularität kann für unterschiedliche Gebiete innerhalb der relevanten Zone verwendet werden.
-
Bei einem Ausführungsbeispiel geben die Höhendaten Geländemerkmale und künstlich hergestellte Merkmale wieder. Höhendaten können aus einer oder mehreren Datenbanken erhalten werden. Die Höhendaten, die in der einen oder den mehreren Datenbanken gespeichert sind, können kombiniert und/oder anderweitig modifiziert werden, um eines oder mehrere Gelände- und/oder künstlich hergestellte Merkmale zu beinhalten.
-
In Block 610 werden Sichtlinien zwischen der Mehrzahl von Punkten und den Objektpositionen innerhalb der zugehörigen Bereiche basierend auf Höhendaten evaluiert. Bei einem Ausführungsbeispiel werden einer oder mehrere Sichtbereiche separat berechnet. Alternativ oder zusätzlich kann die Berechnung beschränkt werden, um ein erneutes Berechnen in einem Gebiet zu eliminieren, das bereits aus einem gewünschten Ergebnis eliminiert wurde. Beispielsweise kann, wenn das gewünschte Ergebnis eine Sichtbarkeit von allen Objektpositionen aus erfordert, eine Berechnung auf Punkte innerhalb eines Bereiches aller Objektpositionen beschränkt werden. Alternativ kann, wenn das gewünschte Ergebnis eine fehlende Sichtbarkeit von irgendeinem Objekt aus erfordert, eine Berechnung auf Punkte innerhalb eines Bereiches einer Objektposition begrenzt werden, die außerhalb aller zuvor berechneten Sichtbereiche liegen.
-
In Block 612 wird eine interessierende Zone bestimmt. Die interessierende Zone weist eine Teilmenge der Mehrzahl von Punkten innerhalb der relevanten Zone auf. Bei einem Ausführungsbeispiel wird die interessierende Zone basierend auf einem binären Sichtbarkeitswert berechnet. Alternativ oder zusätzlich kann eine Sichtbarkeit unter Verwendung von Wahrscheinlichkeitswerten dargestellt werden.
-
Bei einem Ausführungsbeispiel beinhaltet die interessierende Zone Punkte mit einer freien Sichtlinie zu mehreren Objekten. Die interessierende Zone kann basierend auf einer binären Anforderung bestimmt werden, dass eine freie Sichtlinie zwischen jedem Punkt in der interessierenden Zone und jeder Objektposition vorhanden ist. Alternativ oder zusätzlich kann die interessierende Zone mit nicht-binären Werten berechnet werden, um wiederzugeben, dass eine freie Sichtlinie zwischen jedem Punkt und einer oder mehreren der Objektpositionen vorhanden ist.
-
Bei einem Ausführungsbeispiel beinhaltet die interessierende Zone Punkte ohne Sichtlinie zu mehreren Objekten. Die interessierende Zone kann basierend auf einer binären Anforderung bestimmt werden, dass keine Sichtlinie zwischen jedem Punkt in der interessierenden Zone und jeglicher Objektposition vorhanden ist. Alternativ oder zusätzlich kann die interessierende Zone mit nicht-binären Werten berechnet werden, um wiederzugeben, dass keine freie Sichtlinie zwischen jedem Punkt und einer oder mehreren der Objektpositionen vorhanden ist.
-
5. VISUALISIERUNG
-
Computerimplementierte Systeme und Verfahren werden auch in Bezug zu Benutzerschnittstellen bereitgestellt, um eine Mehrfach-Sichtbereich-Analyse durchzuführen und Ergebnisse einer Mehrfach-Sichtbereich-Analyse zu betrachten. Kartierungswerkzeuge können auch bereitgestellt werden, um eine Mehrfach-Sichtbereich-Analyse zu erleichtern. Eine bildliche Darstellung (Visualisierung) der interessierenden Zone, die aus einer Mehrfach-Sichtbereich-Analyse hervorgeht, kann durch eine oder mehrere Berechnungsvorrichtungen, die als Universalcomputer oder Spezialcomputer konfiguriert sind, und unter Verwendung eines oder mehrerer Computerprogramme oder weiterer Softwareelemente durchgeführt werden, die bei Ausführung bewirken, dass die in 7 gezeigten Operationen durchgeführt werden. Beispielsweise können einer oder mehrere Schritte des Verfahrens durch ein Computersystem 1000 durchgeführt werden, wie später noch beschrieben wird. Diese Operationen beinhalten ein Speichern, Abrufen und Umwandeln von Datenwerten in einem elektronischen digitalen Speicher mit dem Effekt eines Transformierens des physikalischen Zustands des Speichers und bewirken, dass eine Computeranzeigeeinheit angesteuert wird oder ein Videospeicher in einen unterschiedlichen Zustand oder ein unterschiedliches Aussehen gebracht wird, und zwar gemäß den beschriebenen Operationen.
-
7 ist ein Ablaufdiagramm, das ein Ausführungsbeispiel eines Verfahrens zum Erstellen einer interessierenden Zone basierend auf Mehrfach-Sichtbereichen darstellt. Ein derartiges Verfahren kann durch eine oder mehrere Berechnungsvorrichtungen durchgeführt werden. Beispielsweise kann einer oder mehrere Schritte des Verfahrens durch das Computersystem 1000 durchgeführt werden.
-
In Block 702 wird eine graphische Benutzerschnittstelle bereitgestellt. Die graphische Benutzerschnittstelle ist konfiguriert, um eine Karte darzustellen. Bei einem Ausführungsbeispiel wird eine Karte angezeigt, die eine relevante Zone für eine Mehrfach-Sichtbereich-Analyse enthält.
-
In Block 704 wird eine Mehrzahl von Objektpositionen entgegengenommen, basierend auf einer Benutzerinteraktion mit der Karte. Bei einem Ausführungsbeispiel wird eine Benutzerschnittstelle, die konfiguriert ist, um Objekte zu erzeugen und/oder Objekteigenschaften zu modifizieren, angezeigt, nachdem ein Ort auf der Karte gewählt wurde. Das Objekt kann einer dem gewählten Ort entsprechenden geographischen Koordinate zugeordnet werden.
-
In Block 706 wird eine interessierende Zone bestimmt. Beispielsweise kann die interessierende Zone gemäß dem in 6 beschriebenen Verfahren bestimmt werden. Die interessierende Zone weist eine Teilmenge der Mehrzahl von Punkten innerhalb der relevanten Zone auf. Bei einem Ausführungsbeispiel beinhaltet die interessierende Zone Punkte mit einer freien Sichtlinie zu mehreren Objekten. Alternativ beinhaltet die interessierende Zone Punkte ohne Sichtlinie zu mehreren Objekten.
-
In Block 708 wird eine navigationsgeeignete dreidimensionale Karte gerendert. Die navigationsgeeignete dreidimensionale Karte weist die Mehrzahl von Objektpositionen und die interessierende Zone auf. Ein Beispiel einer navigationsgeeigneten dreidimensionalen Karte, welche die Mehrzahl von Objektpositionen und die interessierende Zone aufweist, ist in 9 dargestellt. Bei einigen Ausführungsbeispielen können die Operationen von Block 702, Block 708 in Koordination mit einem weiteren Programm, Prozess oder System durchgeführt werden, der/das eine Karte erzeugt, anzeigt und rendert oder ein Erzeugen, Anzeigen und Rendern einer Karte bewirkt. Somit können Ausführungsbeispiele von 7 in Programmen, Prozessen oder Systemen implementiert werden, die nicht direkt graphische Funktionen, Kartierungsfunktionen oder Anzeigefunktionen durchführen, sondern die eine Mehrzahl von Objektpositionsdaten empfangen, eine interessierende Zone bestimmen und eine Ausgabe von Daten einer interessierenden Zone liefern, welche andere Programme, Prozesse oder Systeme in Kartendarstellungen oder anderen graphischen Darstellungen verwenden können.
-
8 zeigt ein Ausführungsbeispiel einer graphischen Benutzerschnittstelle für eine Mehrfach-Sichtbereich-Analyse. Eine Kartendarstellung 800 beinhaltet eine interessierende Zone, die für drei Angriffsereignissen entsprechende Objekte (Markierungen ”Schuss” in 8) basierend auf einer Mehrfach-Sichtbereich-Analyse erzeugt wurde. Die interessierende Zone in 8 entspricht Punkten mit einer freien Sichtlinie zu jedem der drei Objekte. Die interessierende Zone wird auf einer Karte der relevanten Zone dargestellt. Genauer zeigt das hervorgehobene Gebiet alle Punkte mit einer freien Sichtlinie zu jeder Objektposition an, die den drei Objekten zugehörig sind.
-
Eine navigationsgeeignete dreidimensionale Karte kann erstellt werden, um die interessierende Zone im Kontext der Höhendaten darzustellen. 9 zeigt ein Ausführungsbeispiel einer graphischen Benutzerschnittstelle zum Erstellen einer navigationsgeeignete dreidimensionalen Karte von Mehrfach-Sichtbereich-Analysedaten. Eine Schnittstelle 900 mit einer navigationsgeeigneten Karte erzeugt eine dreidimensionale Darstellung der interessierenden Zone und der relevanten Zone basierend auf Kartendaten und Höhendaten. Genauer zeigt das hervorgehobene Gebiet alle Punkte mit freier Sichtlinie zu jeder Objektposition an, die den drei Objekten (Markierungen ”Schuss” in 9) zugehörig sind. Bei einem Ausführungsbeispiel können Daten, die einem jeweiligen Objekt zugehörig sind, innerhalb der Schnittstelle 900 mit der navigationsgeeigneten Karte betrachtet werden. Das Bild wird basierend auf den Höhendaten gerendert. Zusätzliche Höhendaten können aus einer oder mehreren Datenbanken erhalten werden, um die navigationsgeeignete dreidimensionale Karte zu erstellen.
-
In den in 8 und 9 gezeigten Ausführungsbeispielen ist die interessierende Zone durch eine Schraffur hervorgehoben. Eine derartige Ausgestaltung kann bei Systemen nützlich sein, bei denen nur eine Schwarz/Weiß-Anzeige verfügbar ist. Wenn jedoch die Kartendarstellung 800 und/oder die Schnittstelle 900 mit der navigationsgeeigneten Karte in Farbe wiedergegeben werden, dann kann es vorzuziehen sein, die interessierende Zone mit einem bestimmten Farbton und/oder einer bestimmten Farbintensität zu zeigen. Beispielsweise können die Karten gemäß 8 und 9 unter Verwendung einer bestimmten Farbpalette gezeigt werden, und die interessierende Zone kann durch Verwendung einer unterschiedlichen, sehr gut erkennbaren aber transparenten Farbe hervorgehoben werden. Als ein nicht-beschränkendes Beispiel kann eine Überlagerung mit einer transparenten kräftigen grünen Farbe verwendet werden, um die interessierende Zone hervorzuheben.
-
6. HARDWAREÜBERBLICK
-
Gemäß einem Ausführungsbeispiel werden die hier beschriebenen Techniken durch eine oder mehrere Spezialberechnungsvorrichtungen implementiert. Die Spezialberechnungsvorrichtungen können fest verdrahtet sein, um die Techniken durchzuführen, oder sie können digitale elektronische Vorrichtungen wie beispielsweise eine oder mehrere ASICs (anwendungsspezifische integrierte Schaltungen) oder FPGAs (Feld-programmierbare Gate-Arrays) beinhalten, die dauerhaft programmiert sind, um die Techniken durchzuführen, oder sie können einen oder mehrere Universal-Hardware-Prozessoren beinhalten, die programmiert sind, um die Techniken gemäß Programmanweisungen in Firmware, einem Arbeitsspeicher, einer anderen Speichereinrichtung oder einer Kombination von diesen durchzuführen. In derartige Spezialberechnungsvorrichtungen können auch kundenspezifische fest verdrahtete Logikschaltungen, ASICs oder FPGAs mit kundenspezifischer Programmierung kombiniert sein, um die Techniken zu bewerkstelligen. Die Spezialberechnungsvorrichtungen können Desktop-Computersysteme, tragbare Computersysteme, Handgeräte, Netzwerkgeräte oder ein beliebiges anderes Gerät sein, das fest verdrahtete oder programmierte Logik beinhaltet, um die Techniken zu implementieren.
-
Beispielsweise stellt 10 ein Computersystem dar, auf dem eines oder mehrere Ausführungsbeispiele implementiert werden können. Das Computersystem 1000 beinhaltet einen Bus 1002 oder einen anderen Kommunikationsmechanismus für ein Kommunizieren von Information, und einen Hardwareprozessor 1004, der mit dem Bus 1002 verbunden ist, um Information zu verarbeiten. Der Hardwareprozessor 1004 kann beispielsweise ein Universal-Mikroprozessor sein.
-
Das Computersystem 1000 beinhaltet auch einen Hauptspeicher 1006, beispielsweise ein RAM (Direktzugriffsspeicher) oder eine andere dynamische Speichervorrichtung, der mit dem Bus 1002 verbunden ist, um Information und Anweisungen zu speichern, die durch den Prozessor 1004 auszuführen sind. Der Hauptspeicher 1006 kann auch verwendet werden, um temporäre Variablen oder andere Zwischeninformationen während eines Ausführens von durch Prozessor 1004 auszuführenden Anweisungen zu speichern. Derartige Anweisungen machen, wenn sie in dem Prozessor 1004 zugänglichen, nicht-transitorischen Speichermedien gespeichert sind, das Computersystem 1000 zu einer Spezialmaschine, die kundenspezifisch angepasst ist, um die in den Anweisungen angegebenen Operationen auszuführen.
-
Das Computersystem 1000 beinhaltet weiter ein ROM (Nur-Lese-Speicher) 1008 oder eine andere statische Speichervorrichtung, die mit dem Bus 1002 verbunden ist, um statische Informationen und Anweisungen für den Prozessor 1004 zu speichern. Eine Speichervorrichtung 1010, wie beispielsweise ein Magnetplattenlaufwerk, ein Laufwerk mit einer optischen Platte oder ein Halbleiterlaufwerk ist vorgesehen und mit dem Bus 1002 verbunden, um Informationen und Anweisungen zu speichern. Das Computersystem 1000 kann über den Bus 1002 mit einer Anzeige 1012 verbunden sein, beispielsweise einer Kathodenstrahlröhre (CRT), um einem Benutzer des Computers Information anzuzeigen. Eine Eingabevorrichtung 1014, die alphanumerische und weitere Tasten beinhaltet, ist mit dem Bus 1002 verbunden, um Informationen und ausgewählte Befehle an den Prozessor 1004 zu übermitteln. Ein anderer Typ von Benutzereingabevorrichtung ist eine Cursor-Steuerung 1016, wie beispielsweise eine Maus, ein Trackball oder Cursor-Richtungstasten, um dem Prozessor 1004 Richtungsinformation und Auswahlbefehle mitzuteilen und eine Cursorbewegung auf der Anzeigeeinrichtung 1012 zu steuern. Diese Eingabevorrichtung hat typischerweise zwei Freiheitsgrade in zwei Achsen, einer ersten Achse (z. B. x) und einer zweiten Achse (z. B. y), was der Vorrichtung ermöglicht, Positionen in einer Ebene zu anzugeben.
-
Im Computersystem 1000 können die hier beschriebenen Techniken unter Verwendung von kundenspezifischen fest verdrahteten Logikschaltungen, einem oder mehreren ASICs oder FPGAs, Firmware- und/oder Programmlogikschaltungen implementiert sein, die in Kombination mit dem Computersystem bewirken oder programmieren, dass das Computersystem 1000 eine Spezialmaschine ist. Gemäß einem Ausführungsbeispiel werden die hier beschriebenen Techniken durch das Computersystem 1000 ansprechend darauf durchgeführt, dass der Prozessor 1004 eine oder mehrere Folgen von einer oder mehreren im Hauptspeicher 1006 enthaltenen Anweisungen ausführt. Derartige Anweisungen können in den Hauptspeicher 1006 von einem anderen Speichermedium, beispielsweise der Speichervorrichtung 1010, eingelesen werden,. Eine Ausführung der Folgen von Anweisungen, die im Hauptspeicher 1006 enthalten sind, veranlasst den Prozessor 1004, die hier beschriebenen Prozessschritte durchzuführen. Bei alternativen Ausführungsbeispielen können fest verdrahtete Schaltkreise verwendet werden, und zwar anstelle oder in Kombination mit Software-Anweisungen.
-
Der Begriff „Speichermedien”, wie hier verwendet, bezieht sich auf jegliche nicht-transitorische Medien, die Daten und/oder Anweisungen speichern, welche eine Maschine veranlassen, in spezifischer Weise zu arbeiten. Derartige Speichermedien können nicht-flüchtige Medien und/oder flüchtige Medien beinhalten. Nicht-flüchtige Medien schließt beispielsweise optische Platten, magnetische Platten oder Halbleiterlaufwerke (Solid-State-Laufwerke) ein, wie beispielsweise die Speichervorrichtung 1010. Flüchtige Medien beinhalten einen dynamischen Speicher, wie beispielsweise den Hauptspeicher 1006. Übliche Formen von Speichermedien beinhalten beispielsweise eine Diskette, eine flexible Platte, eine Festplatte, ein Halbleiterlaufwerk, ein Magnetband oder ein beliebiges anderes magnetisches Datenspeichermedium, eine CD-ROM, ein beliebiges anderes optisches Datenspeichermedium, ein beliebiges physisches Medium mit Lochmustern, ein RAM, ein PROM und ein EPROM, ein FLASH-EPROM, NVRAM, und einen beliebigen anderen Speicherchip oder -kassette.
-
Speichermedien sind verschieden von Übertragungsmedien, können jedoch in Verbindung mit diesen verwendet werden. Übertragungsmedien nehmen beim Übertragen von Information zwischen Speichermedien teil. Beispielsweise beinhalten Übertragungsmedien Koaxialkabel, Kupferdraht und Lichtwellenleiter, einschließlich der Drähte, die der Bus 1002 enthält. Übertragungsmedien können auch die Form von Schall- oder Lichtwellen annehmen, beispielsweise solche, die während Funkwellen- und Infrarot-Datenkommunikationen erzeugt werden.
-
Verschiedene Formen von Medien können beteiligt sein beim Ausführen einer oder mehrerer Folgen von einer oder mehreren Anweisungen zur Ausführung durch den Prozessor 1004. Beispielsweise können die Anweisungen anfänglich auf einer Festplatte oder einem Halbleiterlaufwerk (Solid-State-Laufwerk) eines entfernt befindlichen Computers gespeichert sein. Der entfernt befindliche Computer kann die Anweisungen in seinen dynamischen Speicher laden und die Anweisungen über eine Telefonleitung unter Verwendung eines Modems senden. Ein lokales Modem des Computersystems 1000 kann die Daten über die Telefonleitung empfangen und einen Infrarot-Sender verwenden, um die Daten in ein Infrarotsignal umzuwandeln. Ein Infrarot-Detektor kann die im Infrarot-Signal beförderten Daten empfangen, und geeignete Schaltungen können die Daten auf den Bus 1002 geben. Der Bus 1002 befördert die Daten zum Hauptspeicher 1006, aus dem der Prozessor 1004 die Anweisungen abruft und ausführt. Die vom Hauptspeicher 1006 empfangenen Anweisungen können optional auf der Speichervorrichtung 1010 gespeichert werden, entweder vor oder nach einem Ausführen durch den Prozessor 1004.
-
Das Computersystem 1000 beinhaltet auch eine Kommunikationsschnittstelle 1018, die mit dem Bus 1002 verbunden ist. Die Kommunikationsschnittstelle 1018 stellt eine Zweiweg-Datenkommunikationsverbindung zu einem Netzwerk-Verbindungsglied 1020 bereit, das mit einem lokalen Netzwerk 1022 verbunden ist. Beispielsweise kann die Kommunikationsschnittstelle 1018 eine ISDN-Karte, ein Kabelmodem, ein Satellitenmodem oder ein Modem sein, um eine Datenkommunikationsverbindung zu einem entsprechenden Typ von Telefonleitung bereitzustellen. Als weiteres Beispiel kann die Kommunikationsschnittstelle 1018 eine LAN-Karte (Local Area Network Card) sein, um eine Datenkommunikationsverbindung zu einem kompatiblen LAN bereitzustellen. Es können auch Drahtlosverbindungen implementiert sein. Bei einer beliebigen derartigen Implementierung sendet und empfängt die Kommunikationsschnittstelle 1018 elektrische, elektromagnetische oder optische Signale, die digitale Datenströme tragen, welche verschiedene Typen von Information repräsentieren.
-
Das Netzwerk-Verbindungsglied 1020 stellt typischerweise eine Datenkommunikation über eines oder mehrere Netzwerke zu anderen Datengeräten bereit. Beispielsweise kann das Netzwerk-Verbindungsglied 1020 eine Verbindung über ein lokales Netzwerk 1022 zu einem Host-Computer 1024 oder zu Datenanlagen bereitstellen, die durch einen Internetdienstanbieter (ISP) 1026 betrieben wird. Der ISP 1026 stellt seinerseits Datenkommunikationsdienste über das weltweite Paketdaten-Kommunikationsnetz bereit, das jetzt üblicherweise als „Internet” 1028 bezeichnet wird. Sowohl das lokale Netz 1022 als auch das Internet 1028 verwenden elektrische, elektromagnetische oder optische Signale, die digitale Datenströme tragen können. Die Signale über die verschiedenen Netzwerke und die Signale im Netzwerk-Verbindungsglied 1020 und über die Kommunikationsschnittstelle 1018, welche die digitalen Daten zum Computersystem 1000 hin und von diesem weg befördern, sind beispielhafte Formen von Übertragungsmedien.
-
Das Computersystem 1000 kann Nachrichten senden und Daten, einschließlich Programmcode empfangen, und zwar über das/die Netzwerk(e), das Netzwerk-Verbindungsglied 1020 und die Kommunikationsschnittstelle 1018. Bei dem Beispiel des Internet könnte ein Server 1030 einen angeforderten Code für ein Anwendungsprogramm über das Internet 1028, den ISP 1026, das lokale Netzwerk 1022 und die Kommunikationsschnittstelle 1018 senden.
-
Der empfangene Code kann durch den Prozessor 1004 ausgeführt werden, und zwar unverändert wie empfangen, und/oder er kann in der Speichervorrichtung 1010 oder einem anderen nicht-flüchtigen Speicher zur späteren Ausführung gespeichert werden.
-
In der vorhergehenden Beschreibung wurden Ausführungsbeispiele der Erfindung mit Bezug auf zahlreiche spezifische Details beschrieben, die von Implementierung zu Implementierung variieren können. Die Beschreibung und die Zeichnungen sind demgemäß beispielhaft und nicht in einschränkendem Sinn zu verstehen. Die alleinige und ausschließliche Angabe des Schutzumfangs der Erfindung, und was die Anmelder als Schutzumfang der Erfindung beabsichtigen, findet sich im wortsinngemäßen und äquivalenten Schutzumfang des Satzes von Ansprüchen, die durch Erteilung aus dieser Anmeldung hervorgehen, und zwar in der spezifischen Form, in der derartige Ansprüche erteilt werden, einschließlich jeglicher nachträglicher Korrektur.