Hi,
I'm loving the BTrACS shapefile format. Unfortunately it has some invalid spatial-lines. The start and end point of the invalid geometry appear to be exactly the same point.
For example in R
TCs <- raster::shapefile(paste0(TCdir,"IBTrACS.ALL.list.v04r00.lines.shp")) #very slow!
invalidLines = which(!rgeos::gIsValid(TCs,byid=TRUE) )
TCs[invalidLines[1],]
class : SpatialLinesDataFrame
features : 1
extent : -73.5, -73.5, 32.5, 32.5 (xmin, xmax, ymin, ymax)
crs : +proj=longlat +datum=WGS84 +no_defs
variables : 168
names : SID, SEASON, NUMBER, BASIN, SUBBASIN, NAME, ISO_TIME, NATURE, LAT, LON, WMO_WIND, WMO_PRES, WMO_AGENCY, TRACK_TYPE, DIST2LAND, ...
value : 1851256N33287, 1851, 15, NA, NA, NOT_NAMED, 1851-09-13 00:00:00, TS, 32.5, -73.5, 50, NA, hurdat_atl, main, 370, ...
> raster::geom(TCs[invalidLines[1],])
object part cump x y
[1,] 1 1 1 -73.5 32.5
[2,] 1 1 1 -73.5 32.5
QGIS analysis (also ueses geos) below.
What should I do with
these lines? Drop them? move the geometry of the second point very slightly?
Cheers,
Julian
QGIS version: 3.16.4-Hannover
QGIS code revision: 654e76b3cb
Qt version: 5.11.2
GDAL version: 3.1.4
GEOS version: 3.8.1-CAPI-1.13.3
PROJ version: Rel. 6.3.2, May 1st, 2020
Processing algorithm…
Algorithm 'Check validity' starting…
Input parameters:
{ 'ERROR_OUTPUT' : 'TEMPORARY_OUTPUT', 'IGNORE_RING_SELF_INTERSECTION' : False, 'INPUT_LAYER' : 'Z:\\work\\archive\\IBTRACS\\IBTrACS.ALL.list.v04r00.lines\\IBTrACS.ALL.list.v04r00.lines.shp', 'INVALID_OUTPUT' : 'TEMPORARY_OUTPUT', 'METHOD' : 2, 'VALID_OUTPUT' : 'TEMPORARY_OUTPUT' }
Execution completed in 243.89 seconds
Results:
{'ERROR_COUNT': 1258,
'ERROR_OUTPUT': 'Error_output_1050ed76_8d36_4373_ac9b_2028ad2d89a0',
'INVALID_COUNT': 1258,
'INVALID_OUTPUT': 'Invalid_output_bc18a5e3_c239_4011_926f_d4b680bf19f1',
'VALID_COUNT': 684065,
'VALID_OUTPUT': 'Valid_output_669cbbc5_48eb_480e_ab05_315a953afd72'}
Loading resulting layers
Algorithm 'Check validity' finished