#23308 closed defect (fixed)
[patch] False positive results for "Water area inside water area" validation
| Reported by: | b1tw153 | Owned by: | team |
|---|---|---|---|
| Priority: | normal | Milestone: | 23.12 |
| Component: | Core validator | Version: | |
| Keywords: | template_report water coastline | Cc: |
Description
What steps will reproduce the problem?
- Create a new layer in JOSM
- Create a closed counter-clockwise way and tag it with natural=coastline. This is an island.
- Create a second closed way inside the island and tag it with natural=water. This is a lake on the island.
- Click the Validation button
What is the expected result?
No validation warnings.
What happens instead?
There is a "Water area inside water area" warning for the two newly created ways.
Note that if you split the natural=coastline into two separate ways and rerun the validation, the warning goes away. The problem only occurs when the natural=coastline element is a single closed way.
Please provide any additional information below. Attach a screenshot if possible.
Revision:18822
Build-Date:2023-08-30 11:52:18
Identification: JOSM/1.5 (18822 en) Mac OS X 14.1.1
OS Build number: macOS 14.1.1 (23B81)
Memory Usage: 1360 MB / 8192 MB (445 MB allocated, but free)
Java version: 17.0.8+7-LTS, Azul Systems, Inc., OpenJDK 64-Bit Server VM
Look and Feel: com.apple.laf.AquaLookAndFeel
Screen: Display 188823026 2048×1152 (scaling 1.00×1.00)
Maximum Screen Size: 2048×1152
Best cursor sizes: 16×16→16×16, 32×32→32×32
System property file.encoding: UTF-8
System property sun.jnu.encoding: UTF-8
Locale info: en_US
Numbers with default locale: 1234567890 -> 1234567890
VM arguments: [-Djpackage.app-version=18822, --add-modules=java.scripting,java.sql,javafx.controls,javafx.media,javafx.swing,javafx.web, --add-exports=java.base/sun.security.action=ALL-UNNAMED, --add-exports=java.desktop/com.apple.eawt=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.plugins.jpeg=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED, --add-opens=java.base/java.lang=ALL-UNNAMED, --add-opens=java.base/java.nio=ALL-UNNAMED, --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED, --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED, --add-opens=java.desktop/javax.imageio.spi=ALL-UNNAMED, --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED, --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED, -Djpackage.app-path=/Applications/JOSM.app/Contents/MacOS/JOSM]
Dataset consistency test: No problems found
Plugins:
+ MicrosoftStreetside (36176)
+ apache-commons (36176)
+ apache-http (36176)
+ ejml (36176)
+ geotools (36176)
+ graphview (36178)
+ jackson (36176)
+ javafx (36178)
+ jaxb (36118)
+ jna (36176)
+ jts (36004)
+ log4j (36176)
+ mapwithai-dev (1.9.16-1-g89c7d89)
+ opendata (36186)
+ reverter (36126)
+ routing (36178)
+ turnlanes (36126)
+ utilsplugin2 (36178)
+ wikipedia (605)
Map paint styles:
+ https://josm.openstreetmap.de/josmfile?page=Styles/MapWithAI&zip=1
+ ${HOME}/Documents/JOSM/TIGER Cleanup.mapcss
+ ${HOME}/Documents/JOSM/Track Completeness.mapcss
+ ${HOME}/Documents/JOSM/GNIS Cleanup.mapcss
Validator rules:
+ ${HOME}/Desktop/GNIS Fixup Validator.mapcss
Last errors/warnings:
- 00010.065 W: Failed to add ${HOME}/Desktop/GNIS Fixup Validator.mapcss to tag checker
- 00010.066 W: java.nio.file.NoSuchFileException: ${HOME}/Desktop/GNIS Fixup Validator.mapcss
- 00011.733 E: Failed to locate image 'MapWithAI'
- 00040.048 W: java.net.SocketTimeoutException: Read timed out. Cause: java.net.SocketTimeoutException: Read timed out
- 00040.154 E: Failed to locate image 'https://www.fs.usda.gov/sites/all/themes/fs_hq/images/usfslogo.png'
- 00445.207 W: java.net.SocketTimeoutException: Read timed out. Cause: java.net.SocketTimeoutException: Read timed out
- 00445.208 W: Already here java.net.SocketTimeoutException: Read timed out
- 00445.309 E: Failed to locate image 'https://www.fs.usda.gov/sites/all/themes/fs_hq/images/usfslogo.png'
Attachments (1)
Change History (8)
comment:1 by , 2 years ago
comment:2 by , 2 years ago
| Component: | Core → Core validator |
|---|
by , 2 years ago
| Attachment: | Water in Water Warning.osm added |
|---|
Sample data set to demonstrate false positive warning and the case where the warning is not generated.
comment:4 by , 2 years ago
| Summary: | False positive results for "Water area inside water area" validation → [patch] False positive results for "Water area inside water area" validation |
|---|
There were duplicate warnings for crossing ways by the CrossingWay test and MapCSS validation. If you open the test data, move the coastlines on each other and merge the second, split coastline, you can check the behaviour.
-
resources/data/validator/geometry.mapcss
198 198 } 199 199 200 200 /* Overlapping areas (spatial test) */ 201 area[natural =~ /^(water|wetland |coastline)$/], area[waterway=riverbank], area[landuse=reservoir] {201 area[natural =~ /^(water|wetland)$/], area[waterway=riverbank], area[landuse=reservoir] { 202 202 set water_area; 203 203 } 204 204 … … 210 210 } 211 211 212 212 /* Water area inside water area (spatial test) */ 213 area:closed[natural =~ /^(water|wetland |coastline)$/] ⊆ area:closed.water_area,214 area:closed[waterway=riverbank] ⊆ area:closed.water_area,215 area:closed[landuse=reservoir] ⊆ area:closed.water_area,216 area:closed[natural =~ /^(water|wetland |coastline)$/] ⊇ area:closed.water_area,217 area:closed[waterway=riverbank] ⊇ area:closed.water_area,218 area:closed[landuse=reservoir] ⊇ area:closed.water_area {213 area:closed[natural =~ /^(water|wetland)$/] ⊆ area:closed.water_area, 214 area:closed[waterway=riverbank] ⊆ area:closed.water_area, 215 area:closed[landuse=reservoir] ⊆ area:closed.water_area, 216 area:closed[natural =~ /^(water|wetland)$/] ⊇ area:closed.water_area, 217 area:closed[waterway=riverbank] ⊇ area:closed.water_area, 218 area:closed[landuse=reservoir] ⊇ area:closed.water_area { 219 219 throwWarning: tr("Water area inside water area"); 220 220 }
Or if you still want a dedicated Overlapping Water Areas warning for coastlines, I can look for other approaches.
comment:5 by , 2 years ago
I'm not sure I understand all the implications of these changes.
But it does seem that identifying a closed natural=coastline way as a water area was incorrect. The only closed ways with natural=coastline are islands, and the sense of the way has the water on the outside not the inside. (Unless the direction of the way is reversed, but there's a separate test for that.) Otherwise, ways with natural=coastline are unclosed, and so wouldn't trigger any of these tests.
comment:7 by , 2 years ago
| Milestone: | → 23.12 |
|---|



Could you please upload an example dataset which triggers the error?