Changes between Version 59 and Version 60 of BldgsGeomMisc


Ignore:
Timestamp:
Sep 26, 2019, 7:38:08 AM (5 years ago)
Author:
darkblueb
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BldgsGeomMisc

    v59 v60  
    9393}}}
    9494
    95 
    96 POLY Valid-Invalids  vanOosterom/Delft
    97 {{{
    98 
    99 1 blue Valid
    100 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260))
    101 
    102 2 blue Valid
    103 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260), (160 210, 220 210, 220 170, 160 170, 160 210))
    104 
    105 3 blue Valid
    106 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260), (160 210, 220 210, 220 170, 160 170, 160 210), (180 160, 210 160, 212 135, 181 135, 180 160))
    107 
    108 4 blue Valid
    109 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260), (130 211, 220 211, 220 170, 130 170, 130 211))
    110 
    111 5 blue Valid
    112 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260), (170 210, 220 210, 220 170, 170 170, 170 210), (140 170, 170 170, 170 150, 140 150, 140 170))
    113 
    114 6 blue Valid
    115 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260), (130 211, 170 211, 170 170, 130 170, 130 211), (170 170, 200 170, 200 150, 170 150, 170 170), (200 200, 230 200, 230 170, 200 170, 200 200))
    116 
    117 7 blue Valid
    118 POLYGON ((200 260, 171 241, 188 226, 227 226, 227 201, 188 201, 188 223, 170 240, 100 190, 196 66, 270 210, 200 260))
    119 
    120 8 blue Valid
    121 POLYGON ((200 260, 171 241, 188 226, 227 226, 227 201, 188 201, 188 223, 162 245, 100 190, 196 66, 270 210, 200 260))
    122 
    123 9 red Valid
    124 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260), (132 211, 220 170, 116 200, 132 211))
    125 
    126 10 red Invalid
    127 POLYGON ((200 260, 100 190, 196 66, 270 210 ))
    128 
    129 11 red Valid
    130 POLYGON ((200 260, 100 190, 196 66, 270 210, 240 230, 250 260, 239 231, 200 260))
    131 
    132 12 blue Valid
    133 POLYGON ((200 260, 100 190, 196 66, 270 210, 240 230, 223 194, 239 231, 200 260))
    134 
    135 13 red Invalid
    136 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260), (130 232, 220 232, 220 170, 130 170, 130 232))
    137 # another integers version, for convenience
    138 POLYGON ((200 261, 100 190, 196 66, 270 210, 200 261), (210 236, 210 210, 163 210, 163 235, 210 236))
    139 
    140 14 red Invalid
    141 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260), (130 292, 220 292, 130 230, 130 292))
    142 
    143 15 red Valid
    144 POLYGON ((200 260, 108 190, 138 230, 180 292, 108 292, 132 230, 100 190, 196 66, 270 210, 200 260))
    145 
    146 16 red Valid
    147 POLYGON ((200 260, 100 190, 196 66, 270 210, 240 230, 169.678 100, 150.0907 125.3, 210 250, 200 260, 200 260))
    148 
    149 17 red Valid
    150 POLYGON ((200 260, 100 190, 196 66, 270 210, 240 230, 170 100, 210 250, 200 260, 200 260))
    151 
    152 18 red Valid
    153 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260),  (157.15 230, 242 230, 242 200, 157 200, 157.15 230))
    154 
    155 19 red Valid
    156 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260), (170 210, 242 230, 220 170, 170 170, 170 210), (131 170, 170 170, 170 150, 131 150, 131 170))
    157 
    158 20 red Invalid
    159 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260), (130 211, 200 200, 170 170, 130 211), (170 170, 200 170, 200 150, 170 150, 170 170), (200 200, 230 200, 230 170, 200 170, 200 200))
    160 
    161 21 red Invalid
    162 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260), (160 211, 200 200, 170 170, 160 211), (170 170, 200 170, 200 150, 170 150, 170 170), (200 200, 230 200, 230 170, 200 170, 200 200))
    163 
    164 22 red Invalid
    165 POLYGON ((200 260, 100 190, 270 210, 200 66, 200 260))
    166 
    167 23 red Invalid
    168 POLYGON ((200 260, 100 190, 200 202, 270 210, 200 66, 200 202, 200 260))
    169 
    170 24 red Invalid
    171 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260), (160 210, 220 210, 220 170, 160 170, 160 210), (180 200, 210 200, 212 185, 188 185, 180 200))
    172 
    173 25 red Invalid
    174 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260),(160 210, 220 210, 220 170, 160 170, 160 210),(200 210, 212 185, 188 185, 200 210))
    175 
    176 26 blue Valid
    177 POLYGON ((200 260, 110 197, 100 190, 196 66, 270 210, 200 260))
    178 
    179 27 green Valid
    180 POLYGON ((200 260, 110 197, 109.9999999999999 196.9999999999999, 100 190, 196 66, 270 210, 200 260))
    181 
    182 28 green Valid
    183 POLYGON ((200 260, 110 197, 100 222, 109.9999999999999 196.9999999999999, 100 190, 196 66, 270 210, 200 260))
    184 
    185 29 green Valid
    186 POLYGON ((200 260, 110 197, 140 170, 109.9999999999999 196.9999999999999, 100 190, 196 66, 270 210, 200 260))
    187 
    188 30 green Invalid
    189 POLYGON ((200 260, 110 197, 248 90, 109.9999999999999 196.9999999999999, 100 190, 196 66, 270 210, 200 260))
    190 
    191 31 green Valid
    192 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260),  (130.0000000000001 210.9999999999999, 220 210.9999999999999, 220 170, 130.0000000000001 170, 130.0000000000001 210.9999999999999))
    193  
    194 32 green Invalid
    195 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260),(129.9999999999999 211.0000000000001, 220 211.0000000000001, 220 170, 129.9999999999999 170, 129.9999999999999 211.0000000000001))
    196 
    197 33 green Valid
    198 POLYGON ((200 260, 100 190, 196 66, 270 210, 240 230, 169.9 99.8, 150.333 125, 210 250, 200 260, 200 260))
    199 
    200 34 green Valid
    201 POLYGON ((200 260, 110 197, 212.95800000000003 99, 103 192.1, 100 190, 196 66, 270 210, 200 260))
    202 
    203 35 green Invalid
    204 POLYGON ((200 260, 110 197, 212.95848 99.0000000000001, 103 192.1, 100 190, 196 66, 270 210, 200 260))
    205 
    206 36 green Valid
    207 POLYGON ((200 260, 100 190, 196 66, 270 210, 200 260), (157.1432 230, 241.9999999999952 230, 242 190, 157.142 190, 157.1432 230))
    208 
    209 
    210 
    211 }}}
    212 
    213 defined Error Conditions
    214 {{{
    215 
    216   BS=boundary selfintersects
    217   CR=crossing rings
    218   EN=edge not connected to interior
    219   FI=floating inner ring
    220   NA=no area
    221   NC=not closed
    222   NH=not one homogenous portion
    223   NO=not orientable
    224   NS=no surface
    225   Rn=rule n (n=1,3,4,5)
    226   RC=ring crosses ring
    227   RO=rings overlap
    228   RT=rings touch
    229   SR=self crossing ring
    230   TE=two exterior rings
    231   TS=two separate areas
    232   WO=wrong orientation
    233  
    234 
    235 }}}
    236 
    237 **Valids-Delft Lab**
    238 
    239 {{{
    240               Table "public.valids_delft"
    241   Column   |   Type   | Collation | Nullable | Default
    242 -----------+----------+-----------+----------+---------
    243  pkey      | integer  |           | not null |
    244  groupname | text     |           |          |
    245  refvalid  | text     |           |          |
    246  wkt_base  | text     |           |          |
    247  geom      | geometry |           |          |
    248 Indexes:
    249     "valids_delft_pkey" PRIMARY KEY, btree (pkey)
    250 
    251 note: entry ten is not a closed POLYGON, and does not load into PostGIS
    252 }}}
    253 
    254 **Postgis 2.5 | GEOS 2.7.1 |**  refvalid **MATCH**
    255 {{{
    256 PostgreSQL 10.10 (Ubuntu 10.10-0ubuntu0.18.04.1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0, 64-bit
    257  POSTGIS="2.5.2 r17328" [EXTENSION] PGSQL="100" GEOS="3.7.1-CAPI-1.11.1 27a5e771" PROJ="Rel. 5.2.0, September 15th, 2018" GDAL="GDAL 2.4.2, released 2019/06/28" LIBXML="2.9.4" LIBJSON="0.12.1" LIBPROTOBUF="1.2.1" RASTER
    258 
    259 }}}
    260 
    261 
    262 **PostGIS 2.3 | GEOS 3.8dev |**  refvalid **MATCH**
    263 {{{
    264 user=# select pkey, refvalid, st_isValid(geom) from valids_delft ;
    265 NOTICE:  Self-intersection at or near point 163.39202965708989 235.00834105653382
    266 NOTICE:  Hole lies outside shell at or near point 130 292
    267 NOTICE:  Interior is disconnected at or near point 170 170
    268 NOTICE:  Interior is disconnected at or near point 170 170
    269 NOTICE:  Self-intersection at or near point 200 201.76470588235293
    270 NOTICE:  Self-intersection at or near point 200 202
    271 NOTICE:  Holes are nested at or near point 180 200
    272 NOTICE:  Self-intersection at or near point 200 210
    273 NOTICE:  Self-intersection at or near point 219.6352644836272 111.99294710327453
    274 NOTICE:  Self-intersection at or near point 129.99999999999989 210.99999999999991
    275 NOTICE:  Self-intersection at or near point 212.95837780046392 99.000086530632473
    276  pkey | refvalid | st_isvalid
    277 ------+----------+------------
    278     1 | Valid    | t
    279     2 | Valid    | t
    280     3 | Valid    | t
    281     4 | Valid    | t
    282     5 | Valid    | t
    283     7 | Valid    | t
    284     6 | Valid    | t
    285     8 | Valid    | t
    286     9 | Valid    | t
    287    11 | Valid    | t
    288    12 | Valid    | t
    289    13 | Invalid  | f
    290    14 | Invalid  | f
    291    15 | Valid    | t
    292    16 | Valid    | t
    293    17 | Valid    | t
    294    18 | Valid    | t
    295    19 | Valid    | t
    296    20 | Invalid  | f
    297    21 | Invalid  | f
    298    22 | Invalid  | f
    299    23 | Invalid  | f
    300    24 | Invalid  | f
    301    25 | Invalid  | f
    302    26 | Valid    | t
    303    27 | Valid    | t
    304    28 | Valid    | t
    305    29 | Valid    | t
    306    30 | Invalid  | f
    307    31 | Valid    | t
    308    32 | Invalid  | f
    309    33 | Valid    | t
    310    34 | Valid    | t
    311    35 | Invalid  | f
    312    36 | Valid    | t
    313 (35 rows)
    314 
    315 --
    316 PostgreSQL 9.5.14 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609, 64-bit
    317 POSTGIS="2.3.2 r15302" GEOS="3.8.0dev-CAPI-1.12.0 " PROJ="Rel. 4.9.2, 08 September 2015" GDAL="GDAL 2.1.3, released 2017/20/01" LIBXML="2.9.3" LIBJSON="0.11.99" RASTER
    318 
    319 }}}
    320 
    321 **PostGIS 2.4 | GEOS 3.7.2 |**  refvalid **MATCH**
    322 {{{
    323 dbb=# select pkey, refvalid, st_isValid(geom) from valids_delft ;
    324 NOTICE:  Self-intersection at or near point 163.39202965708989 235.00834105653382
    325 NOTICE:  Hole lies outside shell at or near point 130 292
    326 NOTICE:  Interior is disconnected at or near point 170 170
    327 NOTICE:  Interior is disconnected at or near point 170 170
    328 NOTICE:  Self-intersection at or near point 200 201.76470588235293
    329 NOTICE:  Self-intersection at or near point 200 202
    330 NOTICE:  Holes are nested at or near point 180 200
    331 NOTICE:  Self-intersection at or near point 200 210
    332 NOTICE:  Self-intersection at or near point 219.6352644836272 111.99294710327453
    333 NOTICE:  Self-intersection at or near point 129.99999999999989 210.99999999999991
    334 NOTICE:  Self-intersection at or near point 212.95837780046392 99.000086530632473
    335  pkey | refvalid | st_isvalid
    336 ------+----------+------------
    337     1 | Valid    | t
    338     2 | Valid    | t
    339     3 | Valid    | t
    340     4 | Valid    | t
    341     5 | Valid    | t
    342     7 | Valid    | t
    343     6 | Valid    | t
    344     8 | Valid    | t
    345     9 | Valid    | t
    346    11 | Valid    | t
    347    12 | Valid    | t
    348    13 | Invalid  | f
    349    14 | Invalid  | f
    350    15 | Valid    | t
    351    16 | Valid    | t
    352    17 | Valid    | t
    353    18 | Valid    | t
    354    19 | Valid    | t
    355    20 | Invalid  | f
    356    21 | Invalid  | f
    357    22 | Invalid  | f
    358    23 | Invalid  | f
    359    24 | Invalid  | f
    360    25 | Invalid  | f
    361    26 | Valid    | t
    362    27 | Valid    | t
    363    28 | Valid    | t
    364    29 | Valid    | t
    365    30 | Invalid  | f
    366    31 | Valid    | t
    367    32 | Invalid  | f
    368    33 | Valid    | t
    369    34 | Valid    | t
    370    35 | Invalid  | f
    371    36 | Valid    | t
    372 (35 rows)
    373 
    374 --
    375 PostgreSQL 10.10 (Ubuntu 10.10-1.pgdg16.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609, 64-bit
    376 POSTGIS="2.4.3" PGSQL="100" GEOS="3.7.2-CAPI-1.11.2 0" PROJ="Rel. 4.9.2, 08 September 2015" GDAL="GDAL 2.3.2, released 2018/09/21" LIBXML="2.9.3" LIBJSON="0.11.99" LIBPROTOBUF="1.2.1"
    377 }}}
    378 
    379 **PostGIS 2.4 | GEOS 3.6.2 |**  refvalid **MATCH**
    380 {{{
    381  PostgreSQL 10.10 (Ubuntu 10.10-1.pgdg16.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609, 64-bit
    382  POSTGIS="2.4.3" PGSQL="100" GEOS="3.6.2-CAPI-1.10.2 4d2925d6" SFCGAL="1.3.0" PROJ="Rel. 4.9.3, 15 August 2016" LIBXML="2.9.3" LIBJSON="0.11.99" LIBPROTOBUF="1.2.1"
    383 }}}
    384