Oseen's approximation: Difference between revisions

From formulasearchengine
Jump to navigation Jump to search
en>Tony1
 
en>FreeRangeFrog
Line 1: Line 1:
Many people weigh that the practice of reading newspapers is excellent and this habit can surely profit the people in getting news of all the kinds. In america of India, happen to be people of several languages and religions who are living together. This could be the main reason why there is a name of different newspapers here. In all the states of India, newspapers are publishing India news proper. They also provide all the latest news India. In all the states, the state news is published India latest news is also wrote. Different languages are found over here in latest India information and facts.<br><br>These days the winds of change are blowing through Healthcare, Automotive, Banking, and Government to name a few. How about from the field what your want to utilise? Are you familiar utilizing latest industry trends? Do you know how these trends are affecting the job-market within you area maybe company a person want to work with? You should. So get on Infotrac, Google, the Wall Street Journal - locate the ugg news, appear at analysis, educate yourself. Putting your job-application in perspective is a really critical strength that will put you in front of untamed dogs.<br><br>If to be able to paid focus on this brand, then on the boat that 2010 the UGG Classic Tall is available these days in navy, mulberry and gray. The UGG Classic Short enters the picture gray or terracotta. Typically the most popular ugg boots sale is that exist in fig, mulberry, moss. Accessible is the innovative tall stripe cable knit classic cardy. Mainly because are along with a mix off merino wool with a cable knit sweater blueprint. They are available in black, chocolate or deep blue.<br><br>Debit card, credit card and pay pal system are the best modes of transferring quantity of money. The shipping cart details will be provided in detail like, as soon as the product will released, obtain delivered the brand new product along with shipping charges will be presented with more information. If you want to discover the product and obtain you can click boost cart inside of online. All of the classic models with fantastic designs make wonders typically the shopping golf cart. cheap boots with special offers and news will pick up in the online up so far.<br><br>The place is scattered with children's furniture and rotting nourishment. But Henry doesn't have period for take inside the details. He hears something rattle above him. Another instant, a carton filled up with dishes explodes beside him, making a deafening noise. It has missed him by less than an inside. From across the space, a guide case hurtles toward him, scraping during the floor, toppling and spilling its load, but still continuing toward him with furious speed and unwavering determination. Scampering backwards, Henry drops the particular opening behind him. Nothing breaks his fall. Nothing softens it.<br><br>So rescue their life from your fashion rule mentality and let your imagination go old. Get yourself a pair of ugg classic tall boots and wear these people you jeans, wear results on casual Friday, or pair them up using your Sunday cheapest. Wear these functional yet attractive boots in day to day life and even while on journey.<br><br>If you treasured this article and also you would like to collect more info regarding [http://horizonafrica.com/img/ ugg boots outlet] generously visit our site.
[[File:DE-9IM-logoSmall.png|right]]
 
The '''Dimensionally Extended nine-Intersection Model (DE-9IM)''' is a [[topological]] [[Interpretation (logic)|model]]
and a [[Specification (technical standard)|standard]] used to describe the [[spatial relation]]s of
two regions (two [[2D geometric model|geometries in two-dimensions]], '''R'''<sup>2</sup>),
in [[Geometry]], [[Point-set topology]], [[Geospatial topology]], and fields related to [[Spatial analysis|computer spatial analysis]].
 
The representation was developed by Clementini and others,<ref>
{{cite book |last=Clementini |first=Eliseo |coauthors=Paolino Di Felice and Peter van Oosterom |editor1-first=David |editor1-last=Abel |editor2-last=Ooi |editor2-first=Beng Chin |chapter=A small set of formal topological relationships suitable for end-user interaction |title=Advances in Spatial Databases: Third International Symposium, SSD '93 Singapore, June 23–25, 1993 Proceedings |series=Lecture Notes in Computer Science |volume=692/1993 |year=1993 |publisher=Springer |doi=10.1007/3-540-56869-7_16 |pages=277–295}}</ref><ref>{{cite journal |last1=Clementini |first1=Eliseo |last2=Sharma |first2=Jayant |last3=Egenhofer |first3=Max J. |year=1994 |title=Modelling topological spatial relations: Strategies for query processing |journal=Computers & Graphics |volume=18 |issue=6 |pages=815–822 |doi=10.1016/0097-8493(94)90007-8 }}</ref>
based on the seminal works of Egenhofer and others<ref>
M.J. Egenhofer and R.D.Franzosa (1991), "Point-set topological spatial relations", [http://dx.doi.org/10.1080/02693799108927841 Int. J. GIS, vol.5, no.2, 161-174].</ref>
,<ref name="sdh1990">M.J.Egenhofer and J.R.Herring  (1990), "A Mathematical Framework for the Definition of Topological Relationships", http://www.spatial.maine.edu/~max/MJEJRH-SDH1990.pdf</ref>
and was used as a basis for standards of ''[[Information retrieval|queries]]'' and ''[[First-order logic|assertions]]'' in [[geographic information systems]] (GIS) and [[spatial database]]s.
 
The matrix offer an approach to classify geometry relations: roughly speaking, with a true/false matrix domain,
there are 512 possible 2D topologic relations, that can be grouped into ''binary classification schemes''.
For English speakers, there are about 10 different schemes that have a name, that is, 10 relation types with usual semantics. "Intersects", "Touches", "Equals", and others. When testing two geometries about a scheme, the result of this test is a '''''spatial predicate''''' named by the scheme.
 
== Matrix model ==
The DE-9IM model is based on a 3×3 intersection [[Matrix (mathematics)|matrix]] with the form:
 
<center><math>
\operatorname{DE9IM}(a,b) = \begin{bmatrix}
\dim(I(a) \cap I(b)) & \dim(I(a) \cap B(b)) & \dim(I(a) \cap E(b)) \\
\dim(B(a) \cap I(b)) & \dim(B(a) \cap B(b)) & \dim(B(a) \cap E(b))\\
\dim(E(a) \cap I(b)) & \dim(E(a) \cap B(b)) & \dim(E(a) \cap E(b))
\end{bmatrix}
</math>
</center>
 
where ''dim'' is the maximum number of [[dimension]]s of the [[Intersection (set theory)|intersection]] (∩) of the [[Interior (topology)|interior]] (I), [[Boundary (topology)|boundary]] (B), and [[Exterior (topology)|exterior]] (E) of geometries ''a'' and ''b''.
In the notation of topological space operators, the matrix elements can be expressed also as
: ''I''(''a'')=''a''<sup>o</sup> &nbsp;&nbsp; ''B''(''a'')=∂''a'' &nbsp;&nbsp; ''E''(''a'')=''a''<sup>''e''</sup>
 
The dimension of [[empty set]]s (∅) are denoted as −1 or <tt>F</tt> (false). The dimension of non-empty sets (¬∅) are denoted with the maximum number of dimensions of the intersection, specifically <tt>0</tt> for [[Point (geometry)|points]], <tt>1</tt> for [[Line (geometry)|lines]], <tt>2</tt> for [[area]]s.  Then, the [[Data domain|domain]] of the model is {<tt>0</tt>,<tt>1</tt>,<tt>2</tt>,<tt>F</tt>}.
 
A simplified version of ''dim''(''x'') values are obtained mapping the values {<tt>0,1,2</tt>} to <tt>T</tt> (true), so using the [[boolean domain]] {<tt>T</tt>,<tt>F</tt>}. The matrix, denoted with operators, can by expressed as
<center><math>
\operatorname{bin}(\operatorname{DE9IM}(a,b)) = \operatorname{9IM}(a,b) = \begin{bmatrix}
a^o  \cap b^o \ne \emptyset  &  a^o \cap \partial{b} \ne \emptyset & a^o \cap b^e \ne \emptyset \\
\partial{a} \cap b^o\ne\emptyset  &    \partial{a} \cap \partial{b}\ne\emptyset  &  \partial{a} \cap b^e\ne\emptyset \\
a^e \cap b^o\ne\emptyset    &    a^e \cap \partial{b}\ne\emptyset  &  a^e  \cap b^e\ne\emptyset
\end{bmatrix}
</math>
</center>
 
Both matrix forms, with dimensional and boolean domains, can be [[Serialization|serialized]] as "''DE-9IM string codes''", that is, can be represented in a single-line string pattern. Since 1999 the ''string codes'' have a [[#Standards|standard]]<ref name="firstStd">The "[[OpenGIS]] Simple Features Specification For SQL", [http://portal.opengeospatial.org/files/?artifact_id=829 Revision 1.1], was released at May 5, 1999. It was the first international standard to establish the format conventions for ''DE-9IM string codes'', and the names of the "Named Spatial Relationship predicates based on the DE-9IM" (see section with this title).</ref> format for database analysis.
 
For output checking or pattern analysis, a matrix value (or a string code) can be checked by a "[[Mask (computing)|mask]]": a desired output value with optional [[asterisk]] symbols as [[Wildcard character|wildcards]] &mdash; that is, "<tt>*</tt>" indicating output positions that the designer does not care about (free values or "don't-care positions").
Then, the mask's domain is {<tt>0</tt>,<tt>1</tt>,<tt>2</tt>,<tt>T</tt>,<tt>F</tt>,<tt>*<tt>}, or {<tt>T<tt>,<tt>F<tt>,<tt>*<tt>} for the boolean form.
 
The simplified models, ''4-Intersection'' and ''9-Intersection'', proposed before ''DE-9IM'' for express ''spatial relations''<ref name="4vs9">M. J. Egenhofer, J. Sharma, and D. Mark (1993) "[http://www.spatial.maine.edu/~max/4Vs9.pdf A Critical Comparison of the 4-Intersection and 9-Intersection Models for Spatial Relations: Formal Analysis]", In: [http://mapcontext.com/autocarto/proceedings/auto-carto-11/index.html Auto-Carto XI].</ref> (and originating the labels ''4IM'' and ''9IM'') can replace the ''DE-9IM'' to optimize calculations, when input conditions satisfy specific constraints.
 
=== Illustration ===
Visually, for two overlapping polygonal geometries, this looks like:<ref>[http://postgis.org/documentation/manual-svn/using_postgis_dbmanagement.html Chapter 4. Using PostGIS: Data Management and Queries]</ref>
{| border="0" align="center"
|-
|
| align="center" |
{| border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0"
|-
| align="center" valign="middle" | ''b'' &nbsp; [[File:de9im04.png]]
|}
|-
| align="center" valign="middle" |
{| border="0" summary="manufactured viewport for HTML img" cellspacing="0" cellpadding="0"
|-
| align="center" valign="middle" | ''a''<br>[[File:de9im03.png]]
|}
|
{| border="0"
|-
! align="center" |
! align="center" | <strong>Interior</strong>
! align="center" | <strong>Boundary</strong>
! align="center" | <strong>Exterior</strong>
|-
| align="center" | <strong>Interior</strong>
| align="center" style="border-right: 2px solid #BCB; border-bottom: 2px solid #BCB;"| [[File:de9im05.png]]
 
&nbsp; ''dim''[<tt>''I''(''a'')<big style="color:red">∩</big>''I''(''b'')</tt>] = '''2''' &nbsp;
| align="center" style="border-right: 2px solid #BCB; border-bottom: 2px solid #BCB;" | [[File:de9im06.png]]
 
&nbsp; ''dim''[<tt>''I''(''a'')<big style="color:red">∩</big>''B''(''b'')</tt>] = '''1''' &nbsp;
| align="center" style="border-bottom: 2px solid #BCB;" | [[File:de9im07.png]]
 
&nbsp; ''dim''[<tt>''I''(''a'')<big style="color:red">∩</big>''E''(''b'')</tt>] = '''2''' &nbsp;
|-
| align="center" | <span class="bold"><strong>Boundary</strong></span>
| align="center" style="border-right: 2px solid #BCB; border-bottom: 2px solid #BCB;" | <div class="informalfigure"><div>[[File:de9im08.png]]</div></div>
 
&nbsp; ''dim''[<tt>''B''(''a'')<big style="color:red">∩</big>''I''(''b'')</tt>] = <strong>1</strong> &nbsp;
| align="center" style="border-right: 2px solid #BCB; border-bottom: 2px solid #BCB;" | <div class="informalfigure"><div>[[File:de9im09.png]]</div></div>
 
&nbsp; ''dim''[<tt>''B''(''a'')<big style="color:red">∩</big>''B''(''b'')</tt>] = <strong>0</strong> &nbsp;
| align="center" style="border-bottom: 2px solid #BCB;"| <div class="informalfigure"><div>[[File:de9im10.png]]</div></div>
 
&nbsp; ''dim''[<tt>''B''(''a'')<big style="color:red">∩</big>''E''(''b'')</tt>] = <strong>1</strong> &nbsp;
|-
| align="center" | <span class="bold"><strong>Exterior</strong></span>
| align="center" style="border-right: 2px solid #BCB;"| <div class="informalfigure"><div>[[File:de9im11.png]]</div></div>
 
&nbsp; ''dim''[<tt>''E''(''a'')<big style="color:red">∩</big>''I''(''b'')</tt>] = <strong>2</strong> &nbsp;
| align="center" style="border-right: 2px solid #BCB;"| <div class="informalfigure"><div>[[File:de9im12.png]]</div></div>
 
&nbsp; ''dim''[<tt>''E''(''a'')<big style="color:red">∩</big>''B''(''b'')</tt>] = <strong>1</strong> &nbsp;
| align="center" | <div class="informalfigure"><div>[[File:de9im13.png]]</div></div>
 
&nbsp; ''dim''[<tt>''E''(''a'')<big style="color:red">∩</big>''E''(''b'')</tt>] = <strong>2</strong> &nbsp;
|}
|}
Reading from left-to-right and top-to-bottom, the resulted ''DE-9IM''(''a'',''b'') string code is '<tt><strong>212101212</strong></tt>', a compacted form for say "<tt>II=2, IB=1, IE=2, BI=1, BB=0, BE=1, EI=2, EB=1, EE=2</tt>".
 
== Spatial predicates ==
The model express important '''''space relations''''' because they are invariant to [[Rotation (mathematics)|rotation]], [[Translation (geometry)|translation]] and [[Scaling (geometry)|scaling]] transformations; but, in its most general form the ''DE-9IM'' model is too complex to make it usable. So, the adoption of "named predicates" have been specified.
 
'''Spatial predicates''' are [[Binary relation|binary]] invariant ''space relations'', with more usual semantics.
The ''spatial predicate'' [[Subroutine|functions]] that can be derived (expressed by masks) from ''DE-9IM'' include:<ref name="sdh1990"/>
<ref>{{citation |url=http://www.vividsolutions.com/jts/javadoc/com/vividsolutions/jts/geom/IntersectionMatrix.html |title=JTS: Class IntersectionMatrix |publisher=Vivid Solutions, Inc.}}</ref>
 
<center><math>
\begin{bmatrix}
II & IB & IE \\
BI & BB & BE \\
EI & EB & EE
\end{bmatrix}
</math>
</center>
 
Predicates defined with masks of domain {T,F,*}
{| class="wikitable"
|-
! style="width:8em" | Name (synonym)
!colspan="4"| Intersection matrix and mask code string<br>([[Boolean algebra#Basic operations|boolean OR]] between matrices)
!Meaning and definition,<ref name="sdh1990"/><ref name="JTS2">[http://www.vividsolutions.com/jts/javadoc/com/vividsolutions/jts/geom/Geometry.html Geometry]</ref>
!Same
|-
!rowspan="2"| Equals
|colspan="4"| <math>\Bigl[\begin{smallmatrix}
\mathrm{T}&\mathrm{*}&\mathrm{F}\\
\mathrm{*}&\mathrm{*}&\mathrm{F}\\
\mathrm{F}&\mathrm{F}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
|rowspan="2"|<center>''II'' ∧ ~''IE'' ∧ ~''BE'' ∧ ~''EI'' ∧ ~''EB''</center>''a'' and ''b'' are topologically [[Equality (relational operator)|equal]]. "Two geometries are topologically equal if their interiors intersect and no part of the interior or boundary of one geometry intersects the exterior of the other".<ref>JTS Technical Specifications of 2003.</ref>
|rowspan="2"|''Within'' & ''Contains''
|-
| <code>T*F**FFF*</code>
|
|
|
|-
!rowspan="2"| Disjoint
|colspan="4"| <math>\Bigl[\begin{smallmatrix}
\mathrm{F}&\mathrm{F}&\mathrm{*}\\
\mathrm{F}&\mathrm{F}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
|rowspan="2"|<center>''~II'' ∧ ~''IB'' ∧ ~''BI'' ∧ ~''BB''</center>''a'' and ''b'' are [[Disjoint sets|disjoint]], have no point in common. They form a set of  [[Disconnected (topology)#Disconnected spaces|disconnected]] geometries.
|rowspan="2"|''not Intersects''
|-
|<code>FF*FF****</code>
|
|
|
|-
!rowspan="2"| Touches (meets)
| <math>\Bigl[\begin{smallmatrix}
\mathrm{F}&\mathrm{T}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
| <math>\Bigl[\begin{smallmatrix}
\mathrm{F}&\mathrm{*}&\mathrm{*}\\
\mathrm{T}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
|colspan="2"| <math>\Bigl[\begin{smallmatrix}
\mathrm{F}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{T}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
|rowspan="2"|<center>(''~II'' ∧ ''IB'') ∨ (~''II'' ∧ ''BI'') ∨ (~''II'' ∧ ''BB'')</center>''a'' touches ''b'', they have at least one boundary point in common, but no interior points.
|rowspan="2"|
|-
| <code>FT*******</code>
| <code>F**T*****</code>
|colspan="2"| <code>F***T****</code>
|-
!rowspan="2"| Contains
|colspan="4"| <math>\Bigl[\begin{smallmatrix}
\mathrm{T}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{F}&\mathrm{F}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
|rowspan="2"|<center>''II'' ∧ ~''EI'' ∧ ~''EB''</center>''b'' is within ''a''. Geometry ''b'' lies in the interior of ''a''. Another definition: "''a'' 'contains'  ''b'' iff no points of ''b''  lie in the exterior of ''a'', and at least one point of the interior of ''b'' lies in the interior of ''a''".<ref name="davis2007">M. Davis (2007), "[http://lin-ear-th-inking.blogspot.com.br/2007/06/subtleties-of-ogc-covers-spatial.html Quirks of the 'Contains' Spatial Predicate]".</ref>
|rowspan="2"|''Within''(''b'',''a'')
|-
|colspan="4"| <code>T*****FF*</code>
|-
!rowspan="2"| Covers
| <math>\Bigl[\begin{smallmatrix}
\mathrm{T}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{F}&\mathrm{F}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
| <math>\Bigl[\begin{smallmatrix}
\mathrm{*}&\mathrm{T}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{F}&\mathrm{F}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
| <math>\Bigl[\begin{smallmatrix}
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{T}&\mathrm{*}&\mathrm{*}\\
\mathrm{F}&\mathrm{F}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
| <math>\Bigl[\begin{smallmatrix}
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{T}&\mathrm{*}\\
\mathrm{F}&\mathrm{F}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
|rowspan="2"|<center>(''II'' ∧ ~''EI'' ∧ ~''EB'') ∨ (''IB'' ∧ ~''EI'' ∧ ~''EB'') ∨ (''BI'' ∧ ~''EI'' ∧ ~''EB'') ∨ (''BB'' ∧ ~''EI'' ∧ ~''EB'')</center>''a'' covers ''b''. Geometry ''b'' lies in the interior of ''a'' (extends ''Contains''). Other definitions: "no points of ''b'' lie in the exterior of ''a''", or "Every point of ''b'' is a point of (the interior of) ''a''".
|rowspan="2"|''CoveredBy''(''b'',''a'')
|-
| <code>T*****FF*</code>
| <code>*T****FF*</code>
| <code>***T**FF*</code>
| <code>****T*FF*</code>
|}
 
Predicates that can be obtained by the above, by [[Negation#Definition|logic negation]] or parameter inversion ([[transposed matrix|matrix transposition]]):
{| class="wikitable"
|-
!rowspan="2" style="width:8em" | Intersects
| <math>\Bigl[\begin{smallmatrix}
\mathrm{T}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
| <math>\Bigl[\begin{smallmatrix}
\mathrm{*}&\mathrm{T}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
| <math>\Bigl[\begin{smallmatrix}
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{T}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
| <math>\Bigl[\begin{smallmatrix}
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{T}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
|rowspan="2"|''a'' [[Intersection (set theory)|intersects]] ''b'': geometries ''a'' and ''b'' have at least one point in common.
|rowspan="2"|''not Disjoint''
|-
| <code>T********</code>
| <code>*T*******</code>
| <code>***T*****</code>
| <code>****T****</code>
|-
!rowspan="2"| Within <br>(inside)
|colspan="4"| <math>\Bigl[\begin{smallmatrix}
\mathrm{T}&\mathrm{*}&\mathrm{F}\\
\mathrm{*}&\mathrm{*}&\mathrm{F}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
|rowspan="2"|''a'' is within ''b'', ''a'' lies in the interior of ''b''.
|rowspan="2"|''Contains''(''b'',''a'')
|-
|colspan="4"| <code>T*F**F***</code>
|-
!rowspan="2"| CoveredBy
| <math>\Bigl[\begin{smallmatrix}
\mathrm{T}&\mathrm{*}&\mathrm{F}\\
\mathrm{*}&\mathrm{*}&\mathrm{F}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
| <math>\Bigl[\begin{smallmatrix}
\mathrm{*}&\mathrm{T}&\mathrm{F}\\
\mathrm{*}&\mathrm{*}&\mathrm{F}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
| <math>\Bigl[\begin{smallmatrix}
\mathrm{*}&\mathrm{*}&\mathrm{F}\\
\mathrm{T}&\mathrm{*}&\mathrm{F}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
| <math>\Bigl[\begin{smallmatrix}
\mathrm{*}&\mathrm{*}&\mathrm{F}\\
\mathrm{*}&\mathrm{T}&\mathrm{F}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
|rowspan="2"|''a'' is covered by ''b'' (extends ''Within''): every point of ''a'' is a point of ''b'', and the interiors of the two geometries have at least one point in common.
|rowspan="2"|''Covers''(''b'',''a'')
|-
| <code>T*F**F***</code>
| <code>*TF**F***</code>
| <code>**FT*F***</code>
| <code>**F*TF***</code>
|}
 
Predicates that ''checks the input dimensions'', and are defined with masks of domain {0,1,T,F,*}
{| class="wikitable"
|-
!rowspan="2" style="width:8em" | '''Crosses'''<span style="font-weight:normal"><br>''dim(a)≠dim(b) or <br>dim(any)=0''</span>
| <math>\Bigl[\begin{smallmatrix}
\mathrm{T}&\mathrm{*}&\mathrm{T}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
| <math>\Bigl[\begin{smallmatrix}
\mathrm{T}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{T}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
|colspan="2"| <math>\Bigl[\begin{smallmatrix}
\mathrm{0}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
|rowspan="2" colspan="2"|''a'' crosses ''b'', they have some but not all interior points in common (and the dimension of the intersection is less than that of at least one of them). Mask selection rules are checked only when ''dim(a)&ne;dim(b)'', except by point/point or line/line inputs, otherwise is false:<ref name="postgis.org">[http://postgis.org/docs/ST_Crosses.html ST_Crosses]</ref>
<center>(''II''=0) for points or lines, &nbsp; (''II'' ∧ ''IE'') when ''dim(a)''&lt;''dim(b)'', &nbsp;  (''II'' ∧ ''EI'') when ''dim(a)''&gt;''dim(b)''</center>
 
|-
| <code>T*T******</code> <small><br>''dim(a)''&lt;''dim(b)''</small>
| <code>T*****T**</code> <small><br>''dim(a)''&gt;''dim(b)''</small>
|colspan="2"| <code>0********</code> <small><br>''dim(any)''=0</small>
|-
!rowspan="2"| Overlaps<span style="font-weight:normal"><br>''dim(a)=dim(b)''</span>
| <math>\Bigl[\begin{smallmatrix}
\mathrm{T}&\mathrm{*}&\mathrm{T}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{T}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
|colspan="3"| <math>\Bigl[\begin{smallmatrix}
\mathrm{1}&\mathrm{*}&\mathrm{T}\\
\mathrm{*}&\mathrm{*}&\mathrm{*}\\
\mathrm{T}&\mathrm{*}&\mathrm{*}
\end{smallmatrix}\Bigr]</math>
|rowspan="2" colspan="2"|''a'' overlaps ''b'', they have some but not all points in common, they have the same dimension, and the intersection of the interiors of the two geometries has the same dimension as the geometries themselves. Mask selection rules are checked only when ''dim(a)=dim(b)'', otherwise is false:
<center>(''II'' ∧ ''IE'' ∧ ''EI'') for points or surfaces, &nbsp; (''II''=1 ∧ ''IE'' ∧ ''EI'') for lines</center>
|-
| <code>T*T***T**</code> <small><br>''dim=0 or 2''</small>
|colspan="2" |<code>1*T***T**</code> <small><br>''dim=1''</small>
|}
 
Notice that:
 
* The ''topologically equal'' definition does not imply that they have the same points or even that they are of the same class.
 
* The output of ''DE-9IM(a,b)'' have the information contained in a list of all interpretable predicates about geometries ''a'' and ''b''.
 
* All predicates are computed by masks, only ''Crosses'' and ''Overlaps'' has adicional conditions about ''dim(a)'' and ''dim(b)''.<!--
** ''Overlaps'': ''da=db''. If the geometries have different dimensions (ex. surface and line), the predicate is false.
** ''Crosses'':  ''(da,db)'' is in {(0,1); (0,2); (1,2); (1,0); (1,2); (2,1); (1,1)}, for any other combination of dimensions the predicate is false.<ref name="postgis.org" />  There are also mask selection rules: <code>T*T******</code> for {(0,1); (0,2); (1,2)} situations, <code>T*****T**</code> for {(1,0); (1,2); (2,1)} situations, and <code>0********</code> for (1,1) situations.
-->
 
* All mask string codes ends with '<code>*</code>'.  It is because ''EE'' have no extra information<!--, it is the opposite of ''II''? -->.
 
* The ''Equals'' mask, <code>T*F**FFF*</code>, is the "merge" of ''Contains'' (<code>T*****FF*</code>) and ''Within'' (<code>T*F**F***</code>): (''II'' ∧ ~''EI'' ∧ ~''EB'') ∧ (''II'' ∧ ~''IE'' ∧ ~''BE'').
 
*  There are no mask for situations involving complex types, like a Point/Multipoint situation. Example: with the above definition the code <code>0FFFFF0F2</code> have the ''Crosses'' predicate (satisfies the mask <code>T*****T**</code>), but by a more rigorous definition, like the ''JTS'' definition, not.<ref name="test1case4">JTS test case of "point A within one of B points", http://www.vividsolutions.com/jts/tests/Run1Case4.html</ref>
 
* The mask <code>T*****FF*</code> is within the definition of both, ''Contains'' and ''Covers''.  ''Covers'' is a more inclusive relation. In particular, unlike ''Contains'' it does not distinguish between points in the boundary and in the interior of geometries. For most situations, ''Covers'' should be used in preference to ''Contains''.<ref name="JTS2"/>
 
* Similarly, the mask <code>T*F**F***</code> falls within the definition of both, ''Within'' and ''CoveredBy''.
 
=== Interpretation ===
[[File:TopologicSpatialRelarions2.png|thumb|400px|Examples of spatial relations.]]
The terminology used for translating the nine relations into more usual semantics, is based on reasonable conventions and the tradition of topological studies.<ref name="sdh1990"/>
Relationships (between two geometries ''a'' and ''b'') such as ''Intersects'', ''Disjoint'', ''Touches'', ''Within'', ''Equals'',  have an obvious semantic:<ref name="davis2007"/><ref name="cafrca">G. Câmara, U. M. Freitas, and M. A. Casanova (199X), "Fields and objects algebras forgis operations", [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.17.991&rep=rep1&type=pdf Citeseerx PDF]</ref>
* ''Equals'': &nbsp; ''a'' = ''b'' &nbsp;&nbsp; that is &nbsp;&nbsp; (''a'' ∩ ''b'' = ''a'') ∧ (''a'' ∩ ''b'' = ''b'')
* ''Within'': &nbsp; ''a'' ∩ ''b'' = ''a''
* ''Intersects'': &nbsp; ''a'' ∩ ''b'' ≠ ∅
* ''Touches'': &nbsp; (''a'' ∩ ''b'' ≠ ∅) ∧ (''a''<sup>ο</sup> ∩ ''b''<sup>ο</sup> = ∅)
 
The other ones, ''Covers'', ''Contains'', ''CoveredBy'' and ''Within'',  have subtle aspects to their definition which are contrary to intuition.
 
Example of "non-obvious predicates", that has an aspect of its definition which may produce unexpected behaviour:<ref name="davis2007"/>  a line ''L'' which is completely contained in the boundary of a polygon ''P'' is ''not'' considered to be contained in ''P''.  This quirk can be expressed as "Polygons do not contain their boundary". See the ''Contains'' definition above:  the last clause, "at least one point of the interior of B lies in the interior of A", causes the trap.  In this case, the predicate ''Covers''  has the intuitively expected semantics (see definition), avoiding boundary considerations.
 
For a better intuitive understand we can use the dimensionality of inputs, as justification to a gradual introduction of semantic complexity:
:{|
|-
!Relations between
!Appropriate predicates
!Semantic added
|-
|point/point
|''Equals'', ''Disjoint''
|Other valid predicates collapses into ''Equals''.
|-
|point/line
|adds ''Intersects''
|''Intersects'' is a flexibilization of ''Equals'', "some equal point at the line".
|-
|line/line
|width="180"|adds ''Touches'', ''Crosses'', ...
|''Touches'' is a constraint of ''Intersects'', about "only boundaries"; ''Crosses'' about "only one point".
|}
 
=== Coverage on possible matrix results ===
The number of possible results in a boolean ''9IM'' matrix is 2<sup>9</sup>=512, and in a ''DE-9IM'' matrix is 3<sup>9</sup>=6561. The probability of one of these results come to satisfy a specific predicate is determined as following,
* 93.7% ''Intersects'';
* 43.8% ''Touches'';
* 25% ''Crosses'' (for valid inputs, 0% otherwise);
* 23.4% ''Covers'' and ''CoveredBy'';
* 12.5% ''Contains'', ''Overlaps'' (for valid inputs, 0% otherwise) and ''Within'';
* 6.3%  ''Disjoint'';
* 3.1%  ''Equals''.
 
On usual applications the geometries intersects ''a priori'', and the another relations are checked.
 
The composite predicates "''Intersects'' OR ''Disjoint''" and "''Equals'' OR ''Different''"  have the sum 100% (always true predicates),
but "''Covers'' OR ''CoveredBy''" have 41%, that is not the sum, because they are not logical complements neither independent relations; idem "''Contains'' OR ''Within''", that have 21%. The sum 25%+12.5%=37.5% is obtained when ignoring overlaping of lines in "''Crosses''  OR ''Overlaps''", because the valid input sets are disjoints.
 
== Queries and assertions ==
The ''DE-9IM'' offers a full descriptive assertion about the two input geometries. It is a mathematical function that represents a [[Functional completeness|complete set]] of all possible relations about two entities, like a [[Truth table]], the [[Three-way comparison]], a [[Karnaugh map#2-variable map examples|Karnaugh map]] or a [[Venn diagram]]. Each output value is like a truth table line, that represent relations of specific inputs.
 
As illustrated above, the output '212101212' resulted from ''DE-9IM''(''a'',''b'') is a complete description of all topologic relations between specific geometries ''a'' and ''b''. It say to us that "II=2, IB=1, IE=2, BI=1, BB=0, BE=1, EI=2, EB=1, EE=2".
 
By other hand, if we check predicates like ''Intersects''(''a'',''b'') or  ''Touches''(''a'',''b'') &mdash; for the same example we have "''Intersects''=<tt>true</tt> and ''Touches''=<tt>true</tt>" &mdash;, it is an incomplete description of "all topologic relations".
Predicates also not say any thing about the dimensionality of the geometries (no matter if ''a'' and ''b'' are lines, areas or points).
 
This independence of geometry-type and the lack of [[completeness]], on ''predicates'', are useful for [[Query language|general queries]] about two geometries:
:{|border="0"
|
!<small>(interior/boundary/exterior semantic)</small>
|
!<small>(usual semantic)</small>
|-
!Assertions:
|style="background-color:#DDC" align="center"|'''more descriptive'''<br>  " ''a'' and ''b'' have  ''DE-9IM''(''a'',''b'')='212101212' "
|
|style="background-color:#DDC" align="center"|'''less descriptive'''<br> " ''a Touches b'' "
|-
!Queries:
|style="background-color:#DDC" align="center"|'''more restrictive'''<br>" Show all pair of geometries where ''DE-9IM''(''a'',''b'')='212101212' "
|&nbsp;&nbsp;&nbsp;
|style="background-color:#DDC" align="center"|'''more general'''<br>" Show all pair of geometries where ''Touches''(''a'',''b'') "
|}
 
For usual applications, the use of ''spatial predicates'' also is justified by being more [[Human-readable medium|human-readable]] than ''DE-9IM'' descriptions: a typical user  have better intuition about predicates (than a set of interiors/border/exterior intersections).
 
Predicates have useful [[Semantics (computer science)|semantic]] into usual applications, so it is useful the translation of a ''DE-9IM'' description into a list of all associated predicates,<ref>A [http://code.google.com/p/postgis-st-relate-summary/ ''DE-9IM'' translator], of all associated predicates of a spatial relation.</ref><ref name="SDO_RELATE">Note. The [http://docs.oracle.com/cd/B19306_01/appdev.102/b14255/sdo_operat.htm#i78531 Oracle's spatial funcion <tt>SDO_RELATE()</tt>] do only a partial translation, internally, offering to user a mask for a or-list of predicates to be checked, instead the DE-9IM string.</ref> that is like a [[Type conversion|casting process]] between the two different semantic types. Examples:
 
* The string codes "<tt>0F1F00102</tt>" and "<tt>0F1FF0102</tt>" have the semantic of "''Intersects & Crosses & Overlaps''".
 
* The string code "<tt>1FFF0FFF2</tt>" have the semantic of "''Equals''".
 
* The string codes "<tt>F01FF0102</tt>", "<tt>FF10F0102</tt>", "<tt>FF1F00102</tt>", "<tt>F01FFF102</tt>",  and "<tt>FF1F0F1F2</tt>" have the semantic of "''Intersects & Touches''".
 
=== Standards ===
The [[Open Geospatial Consortium]]  (OGC) has standardized the typical spatial predicates (Contains, Crosses, Intersects, Touches, etc.) as boolean functions, and the DE-9IM model,<ref name="ogs1">"OpenGIS Implementation Specification for Geographic information - Simple feature access - Part 2: SQL option", [[Open Geospatial Consortium|OGC]], http://www.opengeospatial.org/standards/sfs</ref> as a function that returns a string (the DE-9IM code), with domain of {0,1,2,F},  meaning 0=point, 1=line, 2=area, and F="empty set". This DE-9IM string code is a standardized format for data interchange.
 
The [[Simple feature access]] (ISO 19125) standard,<ref name="SFS2007">
[[Open Geospatial Consortium|Open Geospatial Consortium Inc.]] (2007), "OpenGIS® Implementation Standard for Geographic
information - Simple feature access - Part 2: SQL option", [http://www.opengeospatial.org/standards/sfs OGC document] ''06-104r4'' version 1.2.1 (review of 2010-08-04).</ref> in the chapter 7.2.8, "SQL routines on type Geometry", recommends as supported routines the ''SQL/MM Spatial''<ref>ISO 13249-3 Part 3: Spatial, summarized in  [http://www.sigmod.org/record/issues/0112/standards.pdf SQL Multimedia and Application Packages (SQL/MM)].</ref> (ISO 13249-3 Part 3: Spatial)  ''ST_Dimension'', ''ST_GeometryType'', ''ST_IsEmpty'', ''ST_IsSimple'', ''ST_Boundary'' for all Geometry Types.
The same standard, consistent with the definitions of relations in "Part 1, Clause 6.1.2.3"
of the SQL/MM, recommends (shall be supported) the function labels: ''ST_Equals'', ''ST_Disjoint'', ''ST_Intersects'', ''ST_Touches'', ''ST_Crosses'', ''ST_Within'', ''ST_Contains'', ''ST_Overlaps'' and ''ST_Relate''.
 
The DE-9IM in the OGC standards use the following definitions of Interior and Boundary, for the main OGC standard geometry types:<ref>"Encyclopedia of GIS", edited by Shashi Shekhar and Hui Xiong. SpringerScience 2008. pg. 242</ref>
{|class="wikitable" align="center"
!Subtypes
!Dim
!Interior (I)
!boundary (B)
 
|-
|Point, MultiPoint
|0
|Point, Points
|Empty
 
|-
|LineString, Line
|1
|Points that are left when the boundary points are removed.
|Two end points.
 
|-
|LinearRing
|1
|All points along the geometry.
|Empty.
 
|-
|MultilineString
|1
|Points that are left when the boundary points are removed.
|Those points that are in the boundaries of an odd number of its elements (curves).
 
|-
|Polygon
|2
|Points with the rings.
|Set of rings.
 
|-
|MultiPolygon
|2
|Points with the rings.
|Set of rings of its elements (polygons).
 
|-
|colspan="4"|NOTICE: '''exterior points (E)''' are points ''p'' not in the ''interior'' or ''boundary'', so not need extra interpretation,  <tt>E(p)=not(I(p) or B(p))</tt>.
|}
 
=== Implementation and practical use ===
Most spatial databases, such as [[PostGIS]], implements the ''DE-9IM()'' model by the standard functions:<ref>
ST_Relate() [[PostGIS]] function  [http://www.postgis.org/documentation/manual-2.0/ST_Relate.html online documentation].</ref> <code>ST_Relate</code>, <code>ST_Equals</code>, <code>ST_Intersects</code>, etc. The function <code>ST_Relate(a,b)</code> outputs the standard OGC's ''DE-9IM string code''.
 
Examples: two geometries, ''a'' and ''b'', that intersects and touches with a point (for instance with ''dim(''<tt>B(a)∩I(b)</tt>'')''=<tt>0</tt> and ''dim(''<tt>I(a)∩I(b)</tt>'')''=<tt>F</tt>), can be <code>st_relate(a,b)='FF1F0F1F2'</code> or <code>st_relate(a,b)='FF10F0102'</code> or <code>st_relate(a,b)='FF1F0F1F2'</code>. It also satisfies <code>st_intersects(a,b)=true</code> and <code>st_touches(a,b)=true</code>.
When <code>ST_Relate(a,b)='0FFFFF212'</code>, the returned DE-9IM code have the semantic of "Intersects(a,b) & Crosses(a,b) & Within(a,b) & CoveredBy(a,b)", that is, returns <code>true</code> on the boolean expression <code>st_intersects(a,b) AND st_crosses(a,b) AND  st_within(a,b) AND  st_coveredby(a,b)</code>.
 
The use of <tt>st_relate()</tt> is faster than direct computing of a set of correspondent predicates.<ref>[http://postgis.org/documentation/manual-svn/using_postgis_dbmanagement.html#DE-9IM Chapter 4. Using PostGIS: Data Management and Queries]</ref> There are cases where the use of <tt>st_relate()</tt> is the unique access form of a complex predicate &mdash; see the example of the code <code>0FFFFF0F2</code>,<ref name="test1case4"/> of a point that not "crosses" a multipoint (a object that is a set of points), but predicate ''Crosses'' (when defined by a mask) returns ''true''.
 
It is usual also to [[Function overloading|overload]] the <tt>st_relate()</tt> by a mask parameter,
or use a returned <tt>st_relate(a,b)<tt> string into the <tt>st_relateMatch()</tt> function.<ref>
ST_RelateMatch() [[PostGIS]] function  [http://www.postgis.org/documentation/manual-2.0/ST_RelateMatch.html online documentation].</ref>
When using <tt>st_relate(a,b,mask)</tt>, it returns a boolean. Examples:
* <code>ST_Relate(a,b,'*FF*FF212')</code> returns ''true'' when <code>ST_Relate(a,b)</code> is <code>0FFFFF212</code> or <code>01FFFF212</code>, and returns ''false''  when <code>01FFFF122</code> or <code>0FF1FFFFF</code>.
* <code>ST_relateMatch('0FFFFF212','*FF*FF212')</code> and <code>ST_relateMatch('01FFFF212','TTF*FF212')</code> are ''true'',  <code>ST_relateMatch('01FFFF122','*FF*FF212')</code> is ''false''.
 
== Synonyms  ==
* "Egenhofer-Matrix" is a synonym for the ''9IM'' 3x3 matrix of boolean domain.<ref name="encygis">"Encyclopedia of GIS", S. Shekhar, H. Xiong. ISBN 978-0387359755.</ref>
* "Clementini-Matrix" is a synonym for the [[#Matrix_model|DE-9IM]] 3x3 matrix of {0,1,2,F} domain.<ref name="encygis"/>
* "Egenhofer operators" and "Clementini operators" are sometimes a reference to matrix elements as ''II'' , ''IE'', etc. that can be used in boolean operations. Example: the predicate "''G<sub>1</sub>'' contains ''G<sub>2</sub>''"  can be expressed by "&lt;''G<sub>1</sub>''| II ∧ ~EI ∧ ~EB |''G<sub>1</sub>''&gt;", that can be translated to mask syntax, "<code>T*****FF*</code>".
* [[#Spatial_predicates|Predicate]]s "meets" is a synonym for ''touches''; "inside" is a synonym for ''within''; Oracle's<ref name="SDO_RELATE"/> "ANYINTERACT" is  a synonym for ''intersects'',  "OVERLAPBDYINTERSECT" is  a synonym for ''overlaps'', and "OVERLAPBDYDISJOINT" have not a synonym.
 
== See also ==
{|
|-
|valign="top"|Standards:
* [[Simple feature access]] (ISO 19125)
* [[Open Geospatial Consortium]]
|&nbsp; &nbsp; &nbsp;
|valign="top"|Software:
* [[JTS Topology Suite]]
* [[PostGIS]]
* [[Spatial database]]
|&nbsp; &nbsp; &nbsp;
|valign="top"|Related topics
* [[Geospatial topology]]
* '''[[Spatial relation]]'''
* [[Spatial analysis]]
* [[Karnaugh map#2-variable map examples|Karnaugh (2-variable) map]]
* [[Relational operator]]
|}
 
== References ==
{{Reflist}}
 
== External links ==
* [http://postgis.org/documentation/manual-svn/using_postgis_dbmanagement.html#DE-9IM PostGIS Manual: DE-9IM]
* [http://docs.geotools.org/latest/userguide/library/jts/dim9.html Point Set Theory and the DE-9IM Matrix]
* [http://edndoc.esri.com/arcsde/9.1/general_topics/understand_spatial_relations.htm Illustrated Tutorial for DE-9IM]
 
[[Category:Matrices]]
[[Category:Geometric topology]]

Revision as of 01:45, 11 October 2013

File:DE-9IM-logoSmall.png

The Dimensionally Extended nine-Intersection Model (DE-9IM) is a topological model and a standard used to describe the spatial relations of two regions (two geometries in two-dimensions, R2), in Geometry, Point-set topology, Geospatial topology, and fields related to computer spatial analysis.

The representation was developed by Clementini and others,[1][2] based on the seminal works of Egenhofer and others[3] ,[4] and was used as a basis for standards of queries and assertions in geographic information systems (GIS) and spatial databases.

The matrix offer an approach to classify geometry relations: roughly speaking, with a true/false matrix domain, there are 512 possible 2D topologic relations, that can be grouped into binary classification schemes. For English speakers, there are about 10 different schemes that have a name, that is, 10 relation types with usual semantics. "Intersects", "Touches", "Equals", and others. When testing two geometries about a scheme, the result of this test is a spatial predicate named by the scheme.

Matrix model

The DE-9IM model is based on a 3×3 intersection matrix with the form:

DE9IM(a,b)=[dim(I(a)I(b))dim(I(a)B(b))dim(I(a)E(b))dim(B(a)I(b))dim(B(a)B(b))dim(B(a)E(b))dim(E(a)I(b))dim(E(a)B(b))dim(E(a)E(b))]

where dim is the maximum number of dimensions of the intersection (∩) of the interior (I), boundary (B), and exterior (E) of geometries a and b. In the notation of topological space operators, the matrix elements can be expressed also as

I(a)=ao    B(a)=∂a    E(a)=ae

The dimension of empty sets (∅) are denoted as −1 or F (false). The dimension of non-empty sets (¬∅) are denoted with the maximum number of dimensions of the intersection, specifically 0 for points, 1 for lines, 2 for areas. Then, the domain of the model is {0,1,2,F}.

A simplified version of dim(x) values are obtained mapping the values {0,1,2} to T (true), so using the boolean domain {T,F}. The matrix, denoted with operators, can by expressed as

bin(DE9IM(a,b))=9IM(a,b)=[aoboaobaobeaboababeaeboaebaebe]

Both matrix forms, with dimensional and boolean domains, can be serialized as "DE-9IM string codes", that is, can be represented in a single-line string pattern. Since 1999 the string codes have a standard[5] format for database analysis.

For output checking or pattern analysis, a matrix value (or a string code) can be checked by a "mask": a desired output value with optional asterisk symbols as wildcards — that is, "*" indicating output positions that the designer does not care about (free values or "don't-care positions"). Then, the mask's domain is {0,1,2,T,F,*}, or {T,F,*} for the boolean form.

The simplified models, 4-Intersection and 9-Intersection, proposed before DE-9IM for express spatial relations[6] (and originating the labels 4IM and 9IM) can replace the DE-9IM to optimize calculations, when input conditions satisfy specific constraints.

Illustration

Visually, for two overlapping polygonal geometries, this looks like:[7]

b   File:De9im04.png
a
File:De9im03.png
Interior Boundary Exterior
Interior File:De9im05.png

  dim[I(a)I(b)] = 2  

File:De9im06.png

  dim[I(a)B(b)] = 1  

File:De9im07.png

  dim[I(a)E(b)] = 2  

Boundary

  dim[B(a)I(b)] = 1  

  dim[B(a)B(b)] = 0  

  dim[B(a)E(b)] = 1  

Exterior

  dim[E(a)I(b)] = 2  

  dim[E(a)B(b)] = 1  

  dim[E(a)E(b)] = 2  

Reading from left-to-right and top-to-bottom, the resulted DE-9IM(a,b) string code is '212101212', a compacted form for say "II=2, IB=1, IE=2, BI=1, BB=0, BE=1, EI=2, EB=1, EE=2".

Spatial predicates

The model express important space relations because they are invariant to rotation, translation and scaling transformations; but, in its most general form the DE-9IM model is too complex to make it usable. So, the adoption of "named predicates" have been specified.

Spatial predicates are binary invariant space relations, with more usual semantics. The spatial predicate functions that can be derived (expressed by masks) from DE-9IM include:[4] [8]

[IIIBIEBIBBBEEIEBEE]

Predicates defined with masks of domain {T,F,*}

Name (synonym) Intersection matrix and mask code string
(boolean OR between matrices)
Meaning and definition,[4][9] Same
Equals [TFFFF]
II ∧ ~IE ∧ ~BE ∧ ~EI ∧ ~EB
a and b are topologically equal. "Two geometries are topologically equal if their interiors intersect and no part of the interior or boundary of one geometry intersects the exterior of the other".[10]
Within & Contains
T*F**FFF*
Disjoint [FFFF]
~II ∧ ~IB ∧ ~BI ∧ ~BB
a and b are disjoint, have no point in common. They form a set of disconnected geometries.
not Intersects
FF*FF****
Touches (meets) [FT] [FT] [FT]
(~IIIB) ∨ (~IIBI) ∨ (~IIBB)
a touches b, they have at least one boundary point in common, but no interior points.
FT******* F**T***** F***T****
Contains [TFF]
II ∧ ~EI ∧ ~EB
b is within a. Geometry b lies in the interior of a. Another definition: "a 'contains' b iff no points of b lie in the exterior of a, and at least one point of the interior of b lies in the interior of a".[11]
Within(b,a)
T*****FF*
Covers [TFF] [TFF] [TFF] [TFF]
(II ∧ ~EI ∧ ~EB) ∨ (IB ∧ ~EI ∧ ~EB) ∨ (BI ∧ ~EI ∧ ~EB) ∨ (BB ∧ ~EI ∧ ~EB)
a covers b. Geometry b lies in the interior of a (extends Contains). Other definitions: "no points of b lie in the exterior of a", or "Every point of b is a point of (the interior of) a".
CoveredBy(b,a)
T*****FF* *T****FF* ***T**FF* ****T*FF*

Predicates that can be obtained by the above, by logic negation or parameter inversion (matrix transposition):

Intersects [T] [T] [T] [T] a intersects b: geometries a and b have at least one point in common. not Disjoint
T******** *T******* ***T***** ****T****
Within
(inside)
[TFF] a is within b, a lies in the interior of b. Contains(b,a)
T*F**F***
CoveredBy [TFF] [TFF] [FTF] [FTF] a is covered by b (extends Within): every point of a is a point of b, and the interiors of the two geometries have at least one point in common. Covers(b,a)
T*F**F*** *TF**F*** **FT*F*** **F*TF***

Predicates that checks the input dimensions, and are defined with masks of domain {0,1,T,F,*}

Crosses
dim(a)≠dim(b) or
dim(any)=0
[TT] [TT] [0] a crosses b, they have some but not all interior points in common (and the dimension of the intersection is less than that of at least one of them). Mask selection rules are checked only when dim(a)≠dim(b), except by point/point or line/line inputs, otherwise is false:[12]
(II=0) for points or lines,   (IIIE) when dim(a)<dim(b),   (IIEI) when dim(a)>dim(b)
T*T******
dim(a)<dim(b)
T*****T**
dim(a)>dim(b)
0********
dim(any)=0
Overlaps
dim(a)=dim(b)
[TTT] [1TT] a overlaps b, they have some but not all points in common, they have the same dimension, and the intersection of the interiors of the two geometries has the same dimension as the geometries themselves. Mask selection rules are checked only when dim(a)=dim(b), otherwise is false:
(IIIEEI) for points or surfaces,   (II=1 ∧ IEEI) for lines
T*T***T**
dim=0 or 2
1*T***T**
dim=1

Notice that:

  • The topologically equal definition does not imply that they have the same points or even that they are of the same class.
  • The output of DE-9IM(a,b) have the information contained in a list of all interpretable predicates about geometries a and b.
  • All predicates are computed by masks, only Crosses and Overlaps has adicional conditions about dim(a) and dim(b).
  • All mask string codes ends with '*'. It is because EE have no extra information.
  • The Equals mask, T*F**FFF*, is the "merge" of Contains (T*****FF*) and Within (T*F**F***): (II ∧ ~EI ∧ ~EB) ∧ (II ∧ ~IE ∧ ~BE).
  • There are no mask for situations involving complex types, like a Point/Multipoint situation. Example: with the above definition the code 0FFFFF0F2 have the Crosses predicate (satisfies the mask T*****T**), but by a more rigorous definition, like the JTS definition, not.[13]
  • The mask T*****FF* is within the definition of both, Contains and Covers. Covers is a more inclusive relation. In particular, unlike Contains it does not distinguish between points in the boundary and in the interior of geometries. For most situations, Covers should be used in preference to Contains.[9]
  • Similarly, the mask T*F**F*** falls within the definition of both, Within and CoveredBy.

Interpretation

File:TopologicSpatialRelarions2.png
Examples of spatial relations.

The terminology used for translating the nine relations into more usual semantics, is based on reasonable conventions and the tradition of topological studies.[4] Relationships (between two geometries a and b) such as Intersects, Disjoint, Touches, Within, Equals, have an obvious semantic:[11][14]

  • Equals:   a = b    that is    (ab = a) ∧ (ab = b)
  • Within:   ab = a
  • Intersects:   ab ≠ ∅
  • Touches:   (ab ≠ ∅) ∧ (aοbο = ∅)

The other ones, Covers, Contains, CoveredBy and Within, have subtle aspects to their definition which are contrary to intuition.

Example of "non-obvious predicates", that has an aspect of its definition which may produce unexpected behaviour:[11] a line L which is completely contained in the boundary of a polygon P is not considered to be contained in P. This quirk can be expressed as "Polygons do not contain their boundary". See the Contains definition above: the last clause, "at least one point of the interior of B lies in the interior of A", causes the trap. In this case, the predicate Covers has the intuitively expected semantics (see definition), avoiding boundary considerations.

For a better intuitive understand we can use the dimensionality of inputs, as justification to a gradual introduction of semantic complexity:

Relations between Appropriate predicates Semantic added
point/point Equals, Disjoint Other valid predicates collapses into Equals.
point/line adds Intersects Intersects is a flexibilization of Equals, "some equal point at the line".
line/line adds Touches, Crosses, ... Touches is a constraint of Intersects, about "only boundaries"; Crosses about "only one point".

Coverage on possible matrix results

The number of possible results in a boolean 9IM matrix is 29=512, and in a DE-9IM matrix is 39=6561. The probability of one of these results come to satisfy a specific predicate is determined as following,

  • 93.7% Intersects;
  • 43.8% Touches;
  • 25% Crosses (for valid inputs, 0% otherwise);
  • 23.4% Covers and CoveredBy;
  • 12.5% Contains, Overlaps (for valid inputs, 0% otherwise) and Within;
  • 6.3% Disjoint;
  • 3.1% Equals.

On usual applications the geometries intersects a priori, and the another relations are checked.

The composite predicates "Intersects OR Disjoint" and "Equals OR Different" have the sum 100% (always true predicates), but "Covers OR CoveredBy" have 41%, that is not the sum, because they are not logical complements neither independent relations; idem "Contains OR Within", that have 21%. The sum 25%+12.5%=37.5% is obtained when ignoring overlaping of lines in "Crosses OR Overlaps", because the valid input sets are disjoints.

Queries and assertions

The DE-9IM offers a full descriptive assertion about the two input geometries. It is a mathematical function that represents a complete set of all possible relations about two entities, like a Truth table, the Three-way comparison, a Karnaugh map or a Venn diagram. Each output value is like a truth table line, that represent relations of specific inputs.

As illustrated above, the output '212101212' resulted from DE-9IM(a,b) is a complete description of all topologic relations between specific geometries a and b. It say to us that "II=2, IB=1, IE=2, BI=1, BB=0, BE=1, EI=2, EB=1, EE=2".

By other hand, if we check predicates like Intersects(a,b) or Touches(a,b) — for the same example we have "Intersects=true and Touches=true" —, it is an incomplete description of "all topologic relations". Predicates also not say any thing about the dimensionality of the geometries (no matter if a and b are lines, areas or points).

This independence of geometry-type and the lack of completeness, on predicates, are useful for general queries about two geometries:

(interior/boundary/exterior semantic) (usual semantic)
Assertions: more descriptive
" a and b have DE-9IM(a,b)='212101212' "
less descriptive
" a Touches b "
Queries: more restrictive
" Show all pair of geometries where DE-9IM(a,b)='212101212' "
    more general
" Show all pair of geometries where Touches(a,b) "

For usual applications, the use of spatial predicates also is justified by being more human-readable than DE-9IM descriptions: a typical user have better intuition about predicates (than a set of interiors/border/exterior intersections).

Predicates have useful semantic into usual applications, so it is useful the translation of a DE-9IM description into a list of all associated predicates,[15][16] that is like a casting process between the two different semantic types. Examples:

  • The string codes "0F1F00102" and "0F1FF0102" have the semantic of "Intersects & Crosses & Overlaps".
  • The string code "1FFF0FFF2" have the semantic of "Equals".
  • The string codes "F01FF0102", "FF10F0102", "FF1F00102", "F01FFF102", and "FF1F0F1F2" have the semantic of "Intersects & Touches".

Standards

The Open Geospatial Consortium (OGC) has standardized the typical spatial predicates (Contains, Crosses, Intersects, Touches, etc.) as boolean functions, and the DE-9IM model,[17] as a function that returns a string (the DE-9IM code), with domain of {0,1,2,F}, meaning 0=point, 1=line, 2=area, and F="empty set". This DE-9IM string code is a standardized format for data interchange.

The Simple feature access (ISO 19125) standard,[18] in the chapter 7.2.8, "SQL routines on type Geometry", recommends as supported routines the SQL/MM Spatial[19] (ISO 13249-3 Part 3: Spatial) ST_Dimension, ST_GeometryType, ST_IsEmpty, ST_IsSimple, ST_Boundary for all Geometry Types. The same standard, consistent with the definitions of relations in "Part 1, Clause 6.1.2.3" of the SQL/MM, recommends (shall be supported) the function labels: ST_Equals, ST_Disjoint, ST_Intersects, ST_Touches, ST_Crosses, ST_Within, ST_Contains, ST_Overlaps and ST_Relate.

The DE-9IM in the OGC standards use the following definitions of Interior and Boundary, for the main OGC standard geometry types:[20]

Subtypes Dim Interior (I) boundary (B)
Point, MultiPoint 0 Point, Points Empty
LineString, Line 1 Points that are left when the boundary points are removed. Two end points.
LinearRing 1 All points along the geometry. Empty.
MultilineString 1 Points that are left when the boundary points are removed. Those points that are in the boundaries of an odd number of its elements (curves).
Polygon 2 Points with the rings. Set of rings.
MultiPolygon 2 Points with the rings. Set of rings of its elements (polygons).
NOTICE: exterior points (E) are points p not in the interior or boundary, so not need extra interpretation, E(p)=not(I(p) or B(p)).

Implementation and practical use

Most spatial databases, such as PostGIS, implements the DE-9IM() model by the standard functions:[21] ST_Relate, ST_Equals, ST_Intersects, etc. The function ST_Relate(a,b) outputs the standard OGC's DE-9IM string code.

Examples: two geometries, a and b, that intersects and touches with a point (for instance with dim(B(a)∩I(b))=0 and dim(I(a)∩I(b))=F), can be st_relate(a,b)='FF1F0F1F2' or st_relate(a,b)='FF10F0102' or st_relate(a,b)='FF1F0F1F2'. It also satisfies st_intersects(a,b)=true and st_touches(a,b)=true. When ST_Relate(a,b)='0FFFFF212', the returned DE-9IM code have the semantic of "Intersects(a,b) & Crosses(a,b) & Within(a,b) & CoveredBy(a,b)", that is, returns true on the boolean expression st_intersects(a,b) AND st_crosses(a,b) AND st_within(a,b) AND st_coveredby(a,b).

The use of st_relate() is faster than direct computing of a set of correspondent predicates.[22] There are cases where the use of st_relate() is the unique access form of a complex predicate — see the example of the code 0FFFFF0F2,[13] of a point that not "crosses" a multipoint (a object that is a set of points), but predicate Crosses (when defined by a mask) returns true.

It is usual also to overload the st_relate() by a mask parameter, or use a returned st_relate(a,b) string into the st_relateMatch() function.[23] When using st_relate(a,b,mask), it returns a boolean. Examples:

  • ST_Relate(a,b,'*FF*FF212') returns true when ST_Relate(a,b) is 0FFFFF212 or 01FFFF212, and returns false when 01FFFF122 or 0FF1FFFFF.
  • ST_relateMatch('0FFFFF212','*FF*FF212') and ST_relateMatch('01FFFF212','TTF*FF212') are true, ST_relateMatch('01FFFF122','*FF*FF212') is false.

Synonyms

  • "Egenhofer-Matrix" is a synonym for the 9IM 3x3 matrix of boolean domain.[24]
  • "Clementini-Matrix" is a synonym for the DE-9IM 3x3 matrix of {0,1,2,F} domain.[24]
  • "Egenhofer operators" and "Clementini operators" are sometimes a reference to matrix elements as II , IE, etc. that can be used in boolean operations. Example: the predicate "G1 contains G2" can be expressed by "<G1| II ∧ ~EI ∧ ~EB |G1>", that can be translated to mask syntax, "T*****FF*".
  • Predicates "meets" is a synonym for touches; "inside" is a synonym for within; Oracle's[16] "ANYINTERACT" is a synonym for intersects, "OVERLAPBDYINTERSECT" is a synonym for overlaps, and "OVERLAPBDYDISJOINT" have not a synonym.

See also

Standards:       Software:       Related topics

References

43 year old Petroleum Engineer Harry from Deep River, usually spends time with hobbies and interests like renting movies, property developers in singapore new condominium and vehicle racing. Constantly enjoys going to destinations like Camino Real de Tierra Adentro.

  1. 20 year-old Real Estate Agent Rusty from Saint-Paul, has hobbies and interests which includes monopoly, property developers in singapore and poker. Will soon undertake a contiki trip that may include going to the Lower Valley of the Omo.

    My blog: http://www.primaboinca.com/view_profile.php?userid=5889534
  2. One of the biggest reasons investing in a Singapore new launch is an effective things is as a result of it is doable to be lent massive quantities of money at very low interest rates that you should utilize to purchase it. Then, if property values continue to go up, then you'll get a really high return on funding (ROI). Simply make sure you purchase one of the higher properties, reminiscent of the ones at Fernvale the Riverbank or any Singapore landed property Get Earnings by means of Renting

    In its statement, the singapore property listing - website link, government claimed that the majority citizens buying their first residence won't be hurt by the new measures. Some concessions can even be prolonged to chose teams of consumers, similar to married couples with a minimum of one Singaporean partner who are purchasing their second property so long as they intend to promote their first residential property. Lower the LTV limit on housing loans granted by monetary establishments regulated by MAS from 70% to 60% for property purchasers who are individuals with a number of outstanding housing loans on the time of the brand new housing purchase. Singapore Property Measures - 30 August 2010 The most popular seek for the number of bedrooms in Singapore is 4, followed by 2 and three. Lush Acres EC @ Sengkang

    Discover out more about real estate funding in the area, together with info on international funding incentives and property possession. Many Singaporeans have been investing in property across the causeway in recent years, attracted by comparatively low prices. However, those who need to exit their investments quickly are likely to face significant challenges when trying to sell their property – and could finally be stuck with a property they can't sell. Career improvement programmes, in-house valuation, auctions and administrative help, venture advertising and marketing, skilled talks and traisning are continuously planned for the sales associates to help them obtain better outcomes for his or her shoppers while at Knight Frank Singapore. No change Present Rules

    Extending the tax exemption would help. The exemption, which may be as a lot as $2 million per family, covers individuals who negotiate a principal reduction on their existing mortgage, sell their house short (i.e., for lower than the excellent loans), or take part in a foreclosure course of. An extension of theexemption would seem like a common-sense means to assist stabilize the housing market, but the political turmoil around the fiscal-cliff negotiations means widespread sense could not win out. Home Minority Chief Nancy Pelosi (D-Calif.) believes that the mortgage relief provision will be on the table during the grand-cut price talks, in response to communications director Nadeam Elshami. Buying or promoting of blue mild bulbs is unlawful.

    A vendor's stamp duty has been launched on industrial property for the primary time, at rates ranging from 5 per cent to 15 per cent. The Authorities might be trying to reassure the market that they aren't in opposition to foreigners and PRs investing in Singapore's property market. They imposed these measures because of extenuating components available in the market." The sale of new dual-key EC models will even be restricted to multi-generational households only. The models have two separate entrances, permitting grandparents, for example, to dwell separately. The vendor's stamp obligation takes effect right this moment and applies to industrial property and plots which might be offered inside three years of the date of buy. JLL named Best Performing Property Brand for second year running

    The data offered is for normal info purposes only and isn't supposed to be personalised investment or monetary advice. Motley Fool Singapore contributor Stanley Lim would not personal shares in any corporations talked about. Singapore private home costs increased by 1.eight% within the fourth quarter of 2012, up from 0.6% within the earlier quarter. Resale prices of government-built HDB residences which are usually bought by Singaporeans, elevated by 2.5%, quarter on quarter, the quickest acquire in five quarters. And industrial property, prices are actually double the levels of three years ago. No withholding tax in the event you sell your property. All your local information regarding vital HDB policies, condominium launches, land growth, commercial property and more

    There are various methods to go about discovering the precise property. Some local newspapers (together with the Straits Instances ) have categorised property sections and many local property brokers have websites. Now there are some specifics to consider when buying a 'new launch' rental. Intended use of the unit Every sale begins with 10 p.c low cost for finish of season sale; changes to 20 % discount storewide; follows by additional reduction of fiftyand ends with last discount of 70 % or extra. Typically there is even a warehouse sale or transferring out sale with huge mark-down of costs for stock clearance. Deborah Regulation from Expat Realtor shares her property market update, plus prime rental residences and houses at the moment available to lease Esparina EC @ Sengkang
  3. M.J. Egenhofer and R.D.Franzosa (1991), "Point-set topological spatial relations", Int. J. GIS, vol.5, no.2, 161-174.
  4. 4.0 4.1 4.2 4.3 M.J.Egenhofer and J.R.Herring (1990), "A Mathematical Framework for the Definition of Topological Relationships", http://www.spatial.maine.edu/~max/MJEJRH-SDH1990.pdf
  5. The "OpenGIS Simple Features Specification For SQL", Revision 1.1, was released at May 5, 1999. It was the first international standard to establish the format conventions for DE-9IM string codes, and the names of the "Named Spatial Relationship predicates based on the DE-9IM" (see section with this title).
  6. M. J. Egenhofer, J. Sharma, and D. Mark (1993) "A Critical Comparison of the 4-Intersection and 9-Intersection Models for Spatial Relations: Formal Analysis", In: Auto-Carto XI.
  7. Chapter 4. Using PostGIS: Data Management and Queries
  8. Many property agents need to declare for the PIC grant in Singapore. However, not all of them know find out how to do the correct process for getting this PIC scheme from the IRAS. There are a number of steps that you need to do before your software can be approved.

    Naturally, you will have to pay a safety deposit and that is usually one month rent for annually of the settlement. That is the place your good religion deposit will likely be taken into account and will kind part or all of your security deposit. Anticipate to have a proportionate amount deducted out of your deposit if something is discovered to be damaged if you move out. It's best to you'll want to test the inventory drawn up by the owner, which can detail all objects in the property and their condition. If you happen to fail to notice any harm not already mentioned within the inventory before transferring in, you danger having to pay for it yourself.

    In case you are in search of an actual estate or Singapore property agent on-line, you simply should belief your intuition. It's because you do not know which agent is nice and which agent will not be. Carry out research on several brokers by looking out the internet. As soon as if you end up positive that a selected agent is dependable and reliable, you can choose to utilize his partnerise in finding you a home in Singapore. Most of the time, a property agent is taken into account to be good if he or she locations the contact data on his website. This may mean that the agent does not mind you calling them and asking them any questions relating to new properties in singapore in Singapore. After chatting with them you too can see them in their office after taking an appointment.

    Have handed an trade examination i.e Widespread Examination for House Brokers (CEHA) or Actual Property Agency (REA) examination, or equal; Exclusive brokers are extra keen to share listing information thus making certain the widest doable coverage inside the real estate community via Multiple Listings and Networking. Accepting a severe provide is simpler since your agent is totally conscious of all advertising activity related with your property. This reduces your having to check with a number of agents for some other offers. Price control is easily achieved. Paint work in good restore-discuss with your Property Marketing consultant if main works are still to be done. Softening in residential property prices proceed, led by 2.8 per cent decline within the index for Remainder of Central Region

    Once you place down the one per cent choice price to carry down a non-public property, it's important to accept its situation as it is whenever you move in – faulty air-con, choked rest room and all. Get round this by asking your agent to incorporate a ultimate inspection clause within the possibility-to-buy letter. HDB flat patrons routinely take pleasure in this security net. "There's a ultimate inspection of the property two days before the completion of all HDB transactions. If the air-con is defective, you can request the seller to repair it," says Kelvin.

    15.6.1 As the agent is an intermediary, generally, as soon as the principal and third party are introduced right into a contractual relationship, the agent drops out of the image, subject to any problems with remuneration or indemnification that he could have against the principal, and extra exceptionally, against the third occasion. Generally, agents are entitled to be indemnified for all liabilities reasonably incurred within the execution of the brokers´ authority.

    To achieve the very best outcomes, you must be always updated on market situations, including past transaction information and reliable projections. You could review and examine comparable homes that are currently available in the market, especially these which have been sold or not bought up to now six months. You'll be able to see a pattern of such report by clicking here It's essential to defend yourself in opposition to unscrupulous patrons. They are often very skilled in using highly unethical and manipulative techniques to try and lure you into a lure. That you must also protect your self, your loved ones, and personal belongings as you'll be serving many strangers in your home. Sign a listing itemizing of all of the objects provided by the proprietor, together with their situation. HSR Prime Recruiter 2010
  9. 9.0 9.1 Geometry
  10. JTS Technical Specifications of 2003.
  11. 11.0 11.1 11.2 M. Davis (2007), "Quirks of the 'Contains' Spatial Predicate".
  12. ST_Crosses
  13. 13.0 13.1 JTS test case of "point A within one of B points", http://www.vividsolutions.com/jts/tests/Run1Case4.html
  14. G. Câmara, U. M. Freitas, and M. A. Casanova (199X), "Fields and objects algebras forgis operations", Citeseerx PDF
  15. A DE-9IM translator, of all associated predicates of a spatial relation.
  16. 16.0 16.1 Note. The Oracle's spatial funcion SDO_RELATE() do only a partial translation, internally, offering to user a mask for a or-list of predicates to be checked, instead the DE-9IM string.
  17. "OpenGIS Implementation Specification for Geographic information - Simple feature access - Part 2: SQL option", OGC, http://www.opengeospatial.org/standards/sfs
  18. Open Geospatial Consortium Inc. (2007), "OpenGIS® Implementation Standard for Geographic information - Simple feature access - Part 2: SQL option", OGC document 06-104r4 version 1.2.1 (review of 2010-08-04).
  19. ISO 13249-3 Part 3: Spatial, summarized in SQL Multimedia and Application Packages (SQL/MM).
  20. "Encyclopedia of GIS", edited by Shashi Shekhar and Hui Xiong. SpringerScience 2008. pg. 242
  21. ST_Relate() PostGIS function online documentation.
  22. Chapter 4. Using PostGIS: Data Management and Queries
  23. ST_RelateMatch() PostGIS function online documentation.
  24. 24.0 24.1 "Encyclopedia of GIS", S. Shekhar, H. Xiong. ISBN 978-0387359755.