Close an outline by duplicating the first point at the end, or open by removing duplicate endpoint.
Usage
coo_close(x, ..., .cols = NULL, .ldk_col = NULL)
coo_open(x, ..., .cols = NULL, .ldk_col = NULL)Value
If
xis a single matrix: returns the matrix (closed or opened)If
xis a list: returns a list of matricesIf
xis a tibble: returns the tibble with modified coo column(s)
Details
coo_close(): If the last point is not identical to the first, adds the
first point at the end. If already closed, returns unchanged.
coo_open(): If the last point is identical to the first, removes it.
If already open, returns unchanged.
Landmarks are NOT adjusted - they keep their original indices.
See also
coo_sample() for resampling; coo_close_spread() for closing by spreading gap
Examples
# Close a shape
coo_close(shapes$cat)
#> <xy [121 x 2]>
#> [,1] [,2]
#> [1,] 200 62
#> [2,] 196 56
#> [3,] 200 56
#> [4,] 206 54
#> [5,] 209 48
#> [6,] ... ...
#> [7,] 213 47
#> [8,] 208 53
#> [9,] 204 59
#> [10,] 202 65
#> [11,] 200 62
# Open a closed shape
coo_open(shapes$cat)
#> <xy [120 x 2]>
#> [,1] [,2]
#> [1,] 200 62
#> [2,] 196 56
#> [3,] 200 56
#> [4,] 206 54
#> [5,] 209 48
#> [6,] ... ...
#> [7,] 219 45
#> [8,] 213 47
#> [9,] 208 53
#> [10,] 204 59
#> [11,] 202 65
# Works on lists
coo_close(bot$coo)
#> $brahma
#> <xy [139 x 2]>
#> [,1] [,2]
#> [1,] 37 561
#> [2,] 40 540
#> [3,] 40 529
#> [4,] 43 508
#> [5,] 46 487
#> [6,] ... ...
#> [7,] 33 645
#> [8,] 33 624
#> [9,] 34 603
#> [10,] 35 593
#> [11,] 37 561
#>
#> $caney
#> <xy [169 x 2]>
#> [,1] [,2]
#> [1,] 53 535
#> [2,] 53 525
#> [3,] 54 505
#> [4,] 53 495
#> [5,] 54 485
#> [6,] ... ...
#> [7,] 67 596
#> [8,] 62 585
#> [9,] 59 575
#> [10,] 55 555
#> [11,] 53 535
#>
#> $chimay
#> <xy [190 x 2]>
#> [,1] [,2]
#> [1,] 49 333
#> [2,] 49 325
#> [3,] 49 318
#> [4,] 50 310
#> [5,] 50 302
#> [6,] ... ...
#> [7,] 54 371
#> [8,] 51 364
#> [9,] 49 356
#> [10,] 48 348
#> [11,] 49 333
#>
#> $corona
#> <xy [130 x 2]>
#> [,1] [,2]
#> [1,] 91 426
#> [2,] 91 416
#> [3,] 90 395
#> [4,] 91 385
#> [5,] 91 374
#> [6,] ... ...
#> [7,] 110 486
#> [8,] 105 477
#> [9,] 101 466
#> [10,] 94 447
#> [11,] 91 426
#>
#> $deusventrue
#> <xy [153 x 2]>
#> [,1] [,2]
#> [1,] 74 481
#> [2,] 70 472
#> [3,] 62 454
#> [4,] 59 445
#> [5,] 52 425
#> [6,] ... ...
#> [7,] 97 545
#> [8,] 90 527
#> [9,] 87 518
#> [10,] 82 500
#> [11,] 74 481
#>
#> $duvel
#> <xy [162 x 2]>
#> [,1] [,2]
#> [1,] 61 315
#> [2,] 61 304
#> [3,] 61 293
#> [4,] 61 293
#> [5,] 61 282
#> [6,] ... ...
#> [7,] 69 358
#> [8,] 65 348
#> [9,] 65 348
#> [10,] 63 337
#> [11,] 61 315
#>
#> $franziskaner
#> <xy [125 x 2]>
#> [,1] [,2]
#> [1,] 54 439
#> [2,] 54 418
#> [3,] 54 408
#> [4,] 54 389
#> [5,] 54 379
#> [6,] ... ...
#> [7,] 59 511
#> [8,] 57 501
#> [9,] 54 480
#> [10,] 54 470
#> [11,] 54 439
#>
#> $grimbergen
#> <xy [127 x 2]>
#> [,1] [,2]
#> [1,] 42 404
#> [2,] 40 394
#> [3,] 40 373
#> [4,] 40 362
#> [5,] 40 352
#> [6,] ... ...
#> [7,] 60 467
#> [8,] 54 456
#> [9,] 50 446
#> [10,] 44 425
#> [11,] 42 404
#>
#> $guiness
#> <xy [184 x 2]>
#> [,1] [,2]
#> [1,] 69 385
#> [2,] 69 377
#> [3,] 69 369
#> [4,] 69 360
#> [5,] 69 344
#> [6,] ... ...
#> [7,] 71 433
#> [8,] 67 418
#> [9,] 68 410
#> [10,] 69 401
#> [11,] 69 385
#>
#> $hoegardeen
#> <xy [194 x 2]>
#> [,1] [,2]
#> [1,] 42 544
#> [2,] 40 531
#> [3,] 40 519
#> [4,] 40 506
#> [5,] 40 493
#> [6,] ... ...
#> [7,] 54 606
#> [8,] 51 594
#> [9,] 47 581
#> [10,] 46 568
#> [11,] 42 544
#>
#> $jupiler
#> <xy [157 x 2]>
#> [,1] [,2]
#> [1,] 55 515
#> [2,] 54 501
#> [3,] 54 488
#> [4,] 54 474
#> [5,] 54 460
#> [6,] ... ...
#> [7,] 69 583
#> [8,] 66 570
#> [9,] 62 556
#> [10,] 59 542
#> [11,] 55 515
#>
#> $kingfisher
#> <xy [183 x 2]>
#> [,1] [,2]
#> [1,] 71 384
#> [2,] 71 374
#> [3,] 71 365
#> [4,] 71 355
#> [5,] 71 345
#> [6,] ... ...
#> [7,] 78 433
#> [8,] 76 423
#> [9,] 73 413
#> [10,] 73 403
#> [11,] 71 384
#>
#> $latrappe
#> <xy [137 x 2]>
#> [,1] [,2]
#> [1,] 26 389
#> [2,] 25 377
#> [3,] 25 364
#> [4,] 25 352
#> [5,] 25 339
#> [6,] ... ...
#> [7,] 25 451
#> [8,] 26 439
#> [9,] 26 426
#> [10,] 26 414
#> [11,] 26 389
#>
#> $lindemanskriek
#> <xy [177 x 2]>
#> [,1] [,2]
#> [1,] 60 427
#> [2,] 60 419
#> [3,] 55 404
#> [4,] 54 395
#> [5,] 54 387
#> [6,] ... ...
#> [7,] 75 478
#> [8,] 72 469
#> [9,] 70 461
#> [10,] 65 444
#> [11,] 60 427
#>
#> $nicechouffe
#> <xy [147 x 2]>
#> [,1] [,2]
#> [1,] 82 361
#> [2,] 81 353
#> [3,] 77 336
#> [4,] 77 327
#> [5,] 76 319
#> [6,] ... ...
#> [7,] 93 410
#> [8,] 91 401
#> [9,] 89 394
#> [10,] 85 378
#> [11,] 82 361
#>
#> $pecheresse
#> <xy [130 x 2]>
#> [,1] [,2]
#> [1,] 63 495
#> [2,] 61 476
#> [3,] 61 467
#> [4,] 60 447
#> [5,] 58 428
#> [6,] ... ...
#> [7,] 83 570
#> [8,] 78 552
#> [9,] 73 533
#> [10,] 71 524
#> [11,] 63 495
#>
#> $sierranevada
#> <xy [177 x 2]>
#> [,1] [,2]
#> [1,] 61 345
#> [2,] 61 333
#> [3,] 61 333
#> [4,] 61 320
#> [5,] 61 308
#> [6,] ... ...
#> [7,] 61 394
#> [8,] 59 382
#> [9,] 61 370
#> [10,] 61 370
#> [11,] 61 345
#>
#> $tanglefoot
#> <xy [175 x 2]>
#> [,1] [,2]
#> [1,] 48 367
#> [2,] 48 359
#> [3,] 48 351
#> [4,] 48 335
#> [5,] 49 327
#> [6,] ... ...
#> [7,] 49 415
#> [8,] 48 407
#> [9,] 47 391
#> [10,] 47 383
#> [11,] 48 367
#>
#> $tauro
#> <xy [175 x 2]>
#> [,1] [,2]
#> [1,] 56 515
#> [2,] 54 503
#> [3,] 54 491
#> [4,] 54 478
#> [5,] 54 466
#> [6,] ... ...
#> [7,] 68 575
#> [8,] 63 563
#> [9,] 61 551
#> [10,] 59 538
#> [11,] 56 515
#>
#> $westmalle
#> <xy [142 x 2]>
#> [,1] [,2]
#> [1,] 70 394
#> [2,] 70 386
#> [3,] 67 369
#> [4,] 67 361
#> [5,] 66 344
#> [6,] ... ...
#> [7,] 83 452
#> [8,] 80 436
#> [9,] 76 427
#> [10,] 74 411
#> [11,] 70 394
#>
#> $amrut
#> <xy [192 x 2]>
#> [,1] [,2]
#> [1,] 57 441
#> [2,] 57 431
#> [3,] 57 421
#> [4,] 57 411
#> [5,] 57 401
#> [6,] ... ...
#> [7,] 57 491
#> [8,] 57 481
#> [9,] 57 471
#> [10,] 57 461
#> [11,] 57 441
#>
#> $ballantines
#> <xy [147 x 2]>
#> [,1] [,2]
#> [1,] 38 357
#> [2,] 38 341
#> [3,] 38 333
#> [4,] 38 318
#> [5,] 38 310
#> [6,] ... ...
#> [7,] 38 412
#> [8,] 38 404
#> [9,] 38 388
#> [10,] 38 381
#> [11,] 38 357
#>
#> $bushmills
#> <xy [166 x 2]>
#> [,1] [,2]
#> [1,] 72 456
#> [2,] 72 441
#> [3,] 72 425
#> [4,] 72 425
#> [5,] 72 410
#> [6,] ... ...
#> [7,] 70 518
#> [8,] 70 502
#> [9,] 70 502
#> [10,] 70 487
#> [11,] 72 456
#>
#> $chivas
#> <xy [165 x 2]>
#> [,1] [,2]
#> [1,] 33 437
#> [2,] 31 429
#> [3,] 29 412
#> [4,] 29 404
#> [5,] 29 388
#> [6,] ... ...
#> [7,] 73 495
#> [8,] 57 478
#> [9,] 51 470
#> [10,] 40 453
#> [11,] 33 437
#>
#> $dalmore
#> <xy [156 x 2]>
#> [,1] [,2]
#> [1,] 52 371
#> [2,] 47 359
#> [3,] 44 346
#> [4,] 42 334
#> [5,] 42 322
#> [6,] ... ...
#> [7,] 102 430
#> [8,] 89 419
#> [9,] 77 408
#> [10,] 67 396
#> [11,] 52 371
#>
#> $famousgrouse
#> <xy [170 x 2]>
#> [,1] [,2]
#> [1,] 99 313
#> [2,] 99 303
#> [3,] 99 294
#> [4,] 99 284
#> [5,] 99 284
#> [6,] ... ...
#> [7,] 97 351
#> [8,] 97 351
#> [9,] 97 342
#> [10,] 97 332
#> [11,] 99 313
#>
#> $glendronach
#> <xy [198 x 2]>
#> [,1] [,2]
#> [1,] 73 435
#> [2,] 73 423
#> [3,] 74 411
#> [4,] 74 411
#> [5,] 74 399
#> [6,] ... ...
#> [7,] 72 483
#> [8,] 73 471
#> [9,] 73 471
#> [10,] 73 459
#> [11,] 73 435
#>
#> $glenmorangie
#> <xy [180 x 2]>
#> [,1] [,2]
#> [1,] 53 518
#> [2,] 54 501
#> [3,] 54 501
#> [4,] 54 485
#> [5,] 55 468
#> [6,] ... ...
#> [7,] 58 584
#> [8,] 54 567
#> [9,] 53 550
#> [10,] 53 550
#> [11,] 53 518
#>
#> $highlandpark
#> <xy [170 x 2]>
#> [,1] [,2]
#> [1,] 42 371
#> [2,] 42 357
#> [3,] 42 357
#> [4,] 42 343
#> [5,] 42 329
#> [6,] ... ...
#> [7,] 42 427
#> [8,] 42 413
#> [9,] 42 399
#> [10,] 42 399
#> [11,] 42 371
#>
#> $jackdaniels
#> <xy [151 x 2]>
#> [,1] [,2]
#> [1,] 63 414
#> [2,] 63 401
#> [3,] 63 388
#> [4,] 63 375
#> [5,] 63 362
#> [6,] ... ...
#> [7,] 68 479
#> [8,] 65 466
#> [9,] 64 453
#> [10,] 65 440
#> [11,] 63 414
#>
#> $jb
#> <xy [175 x 2]>
#> [,1] [,2]
#> [1,] 43 531
#> [2,] 43 520
#> [3,] 42 510
#> [4,] 42 488
#> [5,] 43 477
#> [6,] ... ...
#> [7,] 40 595
#> [8,] 42 585
#> [9,] 43 563
#> [10,] 43 552
#> [11,] 43 531
#>
#> $johnniewalker
#> <xy [169 x 2]>
#> [,1] [,2]
#> [1,] 133 175
#> [2,] 133 171
#> [3,] 133 167
#> [4,] 133 163
#> [5,] 134 155
#> [6,] ... ...
#> [7,] 133 199
#> [8,] 133 191
#> [9,] 133 187
#> [10,] 133 183
#> [11,] 133 175
#>
#> $magallan
#> <xy [142 x 2]>
#> [,1] [,2]
#> [1,] 78 397
#> [2,] 78 382
#> [3,] 80 375
#> [4,] 80 361
#> [5,] 81 346
#> [6,] ... ...
#> [7,] 75 455
#> [8,] 75 441
#> [9,] 77 426
#> [10,] 77 419
#> [11,] 78 397
#>
#> $makersmark
#> <xy [178 x 2]>
#> [,1] [,2]
#> [1,] 31 432
#> [2,] 23 420
#> [3,] 16 408
#> [4,] 16 408
#> [5,] 13 394
#> [6,] ... ...
#> [7,] 74 473
#> [8,] 67 464
#> [9,] 67 464
#> [10,] 53 454
#> [11,] 31 432
#>
#> $oban
#> <xy [180 x 2]>
#> [,1] [,2]
#> [1,] 74 457
#> [2,] 74 448
#> [3,] 74 431
#> [4,] 74 423
#> [5,] 74 414
#> [6,] ... ...
#> [7,] 73 508
#> [8,] 73 500
#> [9,] 73 491
#> [10,] 73 474
#> [11,] 74 457
#>
#> $oldpotrero
#> <xy [132 x 2]>
#> [,1] [,2]
#> [1,] 83 307
#> [2,] 77 299
#> [3,] 71 291
#> [4,] 63 274
#> [5,] 60 265
#> [6,] ... ...
#> [7,] 117 358
#> [8,] 112 349
#> [9,] 101 333
#> [10,] 95 324
#> [11,] 83 307
#>
#> $redbreast
#> <xy [178 x 2]>
#> [,1] [,2]
#> [1,] 105 233
#> [2,] 103 228
#> [3,] 101 224
#> [4,] 98 214
#> [5,] 98 210
#> [6,] ... ...
#> [7,] 132 257
#> [8,] 127 253
#> [9,] 118 246
#> [10,] 113 242
#> [11,] 105 233
#>
#> $tamdhu
#> <xy [177 x 2]>
#> [,1] [,2]
#> [1,] 49 552
#> [2,] 49 540
#> [3,] 49 527
#> [4,] 49 515
#> [5,] 49 503
#> [6,] ... ...
#> [7,] 44 613
#> [8,] 45 601
#> [9,] 46 589
#> [10,] 47 577
#> [11,] 49 552
#>
#> $wildturkey
#> <xy [186 x 2]>
#> [,1] [,2]
#> [1,] 18 569
#> [2,] 18 555
#> [3,] 18 541
#> [4,] 18 527
#> [5,] 18 513
#> [6,] ... ...
#> [7,] 18 638
#> [8,] 15 625
#> [9,] 15 611
#> [10,] 15 597
#> [11,] 18 569
#>
#> $yoichi
#> <xy [124 x 2]>
#> [,1] [,2]
#> [1,] 69 384
#> [2,] 69 369
#> [3,] 69 355
#> [4,] 69 340
#> [5,] 69 325
#> [6,] ... ...
#> [7,] 68 450
#> [8,] 68 435
#> [9,] 68 421
#> [10,] 69 406
#> [11,] 69 384
#>
#> attr(,"class")
#> [1] "out" "coo" "list"
# Works on tibbles
coo_open(bot)
#> # A tibble: 40 × 3
#> coo type dummy
#> <out> <fct> <fct>
#> 1 (138 x 2) whisky a
#> 2 (168 x 2) whisky a
#> 3 (189 x 2) whisky a
#> 4 (129 x 2) whisky a
#> 5 (152 x 2) whisky a
#> 6 (161 x 2) whisky a
#> 7 (124 x 2) whisky a
#> 8 (126 x 2) whisky a
#> 9 (183 x 2) whisky a
#> 10 (193 x 2) whisky a
#> # ℹ 30 more rows
