Skip to contents

Smooth a shape using local averaging.

Usage

coo_smooth(x, ..., .cols = NULL, .ldk_col = NULL)

coo_smooth_fixed(x, ..., .cols = NULL, .ldk_col = NULL)

Arguments

x

A matrix (nx2), list of matrices, or tibble with coo columns.

...

Additional arguments (reserved for future use).

.cols

Column name(s) to process when x is a tibble. If NULL, automatically detects columns containing coo objects.

n

Integer. Number of smoothing iterations. Default is 0 (no smoothing).

Value

  • If x is a single matrix: returns the smoothed matrix

  • If x is a list: returns a list of smoothed matrices

  • If x is a tibble: returns the tibble with specified coo columns smoothed

Details

  • coo_smooth(): smooth all points

  • coo_smooth_fixed(): smooth while keeping first and last points fixed

See also

coo_sample() for resampling

Examples

# Smooth with 3 iterations
coo_smooth(shapes$cat, n = 3)
#> <xy [120 x 2]>
#>       [,1]    [,2]   
#>  [1,] 200.125  60.188
#>  [2,] 199.703  57.984
#>  [3,] 201.422  55.281
#>  [4,] 204.078  52.172
#>  [5,] 205.234  48.547
#>  [6,] ...     ...    
#>  [7,] 218.734  46.969
#>  [8,] 213.516  49.188
#>  [9,] 208.828  53.391
#> [10,] 205.047  57.891
#> [11,] 202.141  60.500

# Smooth list
coo_smooth(bot$coo, n = 5)
#> $brahma
#> <xy [138 x 2]>
#>       [,1]    [,2]   
#>  [1,]  37.350 564.976
#>  [2,]  39.165 545.177
#>  [3,]  41.164 526.315
#>  [4,]  43.400 508.279
#>  [5,]  45.904 490.620
#>  [6,] ...     ...    
#>  [7,]  36.957 659.704
#>  [8,]  34.800 641.692
#>  [9,]  34.165 623.579
#> [10,]  34.615 604.816
#> [11,]  35.771 585.146
#> 
#> $caney
#> <xy [168 x 2]>
#>       [,1]    [,2]   
#>  [1,]  54.796 538.779
#>  [2,]  53.859 523.379
#>  [3,]  53.573 508.822
#>  [4,]  53.607 494.936
#>  [5,]  53.741 481.303
#>  [6,] ...     ...    
#>  [7,]  76.079 612.488
#>  [8,]  69.492 598.846
#>  [9,]  63.982 584.830
#> [10,]  59.724 570.123
#> [11,]  56.691 554.615
#> 
#> $chimay
#> <xy [189 x 2]>
#>       [,1]    [,2]   
#>  [1,]  48.996 335.801
#>  [2,]  49.080 326.590
#>  [3,]  49.345 318.061
#>  [4,]  49.657 310.068
#>  [5,]  49.944 302.254
#>  [6,] ...     ...    
#>  [7,]  58.663 379.547
#>  [8,]  55.168 371.377
#>  [9,]  52.332 363.248
#> [10,]  50.375 354.636
#> [11,]  49.329 345.361
#> 
#> $corona
#> <xy [129 x 2]>
#>       [,1]    [,2]   
#>  [1,]  93.497 429.836
#>  [2,]  91.741 414.083
#>  [3,]  90.997 399.106
#>  [4,]  90.834 384.759
#>  [5,]  90.886 370.490
#>  [6,] ...     ...    
#>  [7,] 115.445 504.142
#>  [8,] 110.737 489.966
#>  [9,] 105.604 475.924
#> [10,] 100.684 461.361
#> [11,]  96.515 445.868
#> 
#> $deusventrue
#> <xy [152 x 2]>
#>       [,1]    [,2]   
#>  [1,]  74.992 484.750
#>  [2,]  69.247 470.236
#>  [3,]  63.674 456.189
#>  [4,]  58.507 442.570
#>  [5,]  53.925 429.413
#>  [6,] ...     ...    
#>  [7,]  99.813 555.055
#>  [8,]  95.493 542.069
#>  [9,]  90.907 528.614
#> [10,]  85.969 514.413
#> [11,]  80.639 499.624
#> 
#> $duvel
#> <xy [161 x 2]>
#>       [,1]    [,2]   
#>  [1,]  62.144 319.137
#>  [2,]  61.436 307.673
#>  [3,]  61.021 297.792
#>  [4,]  60.680 289.144
#>  [5,]  60.248 280.508
#>  [6,] ...     ...    
#>  [7,]  75.466 369.268
#>  [8,]  70.875 359.967
#>  [9,]  67.376 351.113
#> [10,]  64.945 341.791
#> [11,]  63.279 331.025
#> 
#> $franziskaner
#> <xy [124 x 2]>
#>       [,1]    [,2]   
#>  [1,]  54.187 442.879
#>  [2,]  54.036 424.209
#>  [3,]  54.024 407.046
#>  [4,]  54.109 391.222
#>  [5,]  54.344 375.981
#>  [6,] ...     ...    
#>  [7,]  61.282 529.239
#>  [8,]  58.924 513.632
#>  [9,]  57.015 497.596
#> [10,]  55.566 480.539
#> [11,]  54.639 462.105
#> 
#> $grimbergen
#> <xy [126 x 2]>
#>       [,1]    [,2]   
#>  [1,]  43.328 408.102
#>  [2,]  41.475 392.056
#>  [3,]  40.523 376.867
#>  [4,]  40.157 362.343
#>  [5,]  40.123 347.908
#>  [6,] ...     ...    
#>  [7,]  72.017 484.842
#>  [8,]  63.832 470.275
#>  [9,]  56.525 455.711
#> [10,]  50.684 440.573
#> [11,]  46.338 424.550
#> 
#> $guiness
#> <xy [183 x 2]>
#>       [,1]    [,2]   
#>  [1,]  68.818 388.123
#>  [2,]  68.938 377.826
#>  [3,]  68.989 367.686
#>  [4,]  69.009 357.394
#>  [5,]  69.045 347.023
#>  [6,] ...     ...    
#>  [7,]  73.737 439.987
#>  [8,]  71.256 430.416
#>  [9,]  69.611 420.146
#> [10,]  68.833 409.494
#> [11,]  68.694 398.735
#> 
#> $hoegardeen
#> <xy [193 x 2]>
#>       [,1]    [,2]   
#>  [1,]  43.181 548.309
#>  [2,]  41.542 533.277
#>  [3,]  40.577 519.279
#>  [4,]  40.153 506.119
#>  [5,]  40.025 493.344
#>  [6,] ...     ...    
#>  [7,]  57.827 618.268
#>  [8,]  54.371 605.923
#>  [9,]  51.109 592.936
#> [10,]  48.104 578.935
#> [11,]  45.423 563.853
#> 
#> $jupiler
#> <xy [156 x 2]>
#>       [,1]    [,2]   
#>  [1,]  56.902 520.062
#>  [2,]  55.274 503.621
#>  [3,]  54.427 488.389
#>  [4,]  54.100 474.141
#>  [5,]  54.004 460.346
#>  [6,] ...     ...    
#>  [7,]  74.247 596.986
#>  [8,]  69.995 583.183
#>  [9,]  66.059 568.902
#> [10,]  62.481 553.604
#> [11,]  59.361 537.100
#> 
#> $kingfisher
#> <xy [182 x 2]>
#>       [,1]    [,2]   
#>  [1,]  71.942 387.563
#>  [2,]  71.378 375.934
#>  [3,]  71.112 365.224
#>  [4,]  71.021 355.482
#>  [5,]  71.004 346.728
#>  [6,] ...     ...    
#>  [7,]  79.855 438.587
#>  [8,]  77.975 430.807
#>  [9,]  76.053 421.790
#> [10,]  74.297 411.302
#> [11,]  72.903 399.642
#> 
#> $latrappe
#> <xy [136 x 2]>
#>       [,1]    [,2]   
#>  [1,]  25.616 393.773
#>  [2,]  25.387 378.812
#>  [3,]  25.227 364.894
#>  [4,]  25.227 351.740
#>  [5,]  25.388 338.561
#>  [6,] ...     ...    
#>  [7,]  31.008 465.846
#>  [8,]  27.893 451.787
#>  [9,]  26.473 438.224
#> [10,]  25.991 424.199
#> [11,]  25.810 409.227
#> 
#> $lindemanskriek
#> <xy [176 x 2]>
#>       [,1]    [,2]   
#>  [1,]  61.974 430.691
#>  [2,]  59.100 418.211
#>  [3,]  56.827 406.709
#>  [4,]  55.251 396.065
#>  [5,]  54.333 385.756
#>  [6,] ...     ...    
#>  [7,]  77.982 488.801
#>  [8,]  74.955 478.420
#>  [9,]  71.881 467.770
#> [10,]  68.636 456.242
#> [11,]  65.250 443.669
#> 
#> $nicechouffe
#> <xy [146 x 2]>
#>       [,1]    [,2]   
#>  [1,]  82.876 364.122
#>  [2,]  80.562 351.401
#>  [3,]  78.662 339.496
#>  [4,]  77.229 328.536
#>  [5,]  76.231 318.125
#>  [6,] ...     ...    
#>  [7,]  97.167 421.018
#>  [8,]  93.956 410.753
#>  [9,]  91.002 400.359
#> [10,]  88.207 389.230
#> [11,]  85.477 377.012
#> 
#> $pecheresse
#> <xy [129 x 2]>
#>       [,1]    [,2]   
#>  [1,]  65.859 498.704
#>  [2,]  63.016 480.864
#>  [3,]  61.087 463.774
#>  [4,]  59.820 447.247
#>  [5,]  58.955 430.854
#>  [6,] ...     ...    
#>  [7,]  86.427 583.438
#>  [8,]  82.217 567.370
#>  [9,]  77.991 551.248
#> [10,]  73.717 534.492
#> [11,]  69.551 516.846
#> 
#> $sierranevada
#> <xy [176 x 2]>
#>       [,1]    [,2]   
#>  [1,]  60.914 349.847
#>  [2,]  60.980 338.941
#>  [3,]  60.998 328.810
#>  [4,]  61.000 319.088
#>  [5,]  61.000 309.548
#>  [6,] ...     ...    
#>  [7,]  63.436 401.861
#>  [8,]  61.747 392.754
#>  [9,]  60.923 382.867
#> [10,]  60.705 372.342
#> [11,]  60.787 361.221
#> 
#> $tanglefoot
#> <xy [174 x 2]>
#>       [,1]    [,2]   
#>  [1,]  47.702 370.016
#>  [2,]  47.895 359.086
#>  [3,]  48.118 348.430
#>  [4,]  48.366 338.094
#>  [5,]  48.622 328.297
#>  [6,] ...     ...    
#>  [7,]  53.092 422.992
#>  [8,]  50.441 413.625
#>  [9,]  48.787 403.555
#> [10,]  47.921 392.633
#> [11,]  47.640 381.273
#> 
#> $tauro
#> <xy [174 x 2]>
#>       [,1]    [,2]   
#>  [1,]  56.887 519.264
#>  [2,]  55.405 504.773
#>  [3,]  54.531 491.235
#>  [4,]  54.144 478.496
#>  [5,]  54.022 466.182
#>  [6,] ...     ...    
#>  [7,]  71.304 586.656
#>  [8,]  67.703 574.666
#>  [9,]  64.382 562.173
#> [10,]  61.445 548.721
#> [11,]  58.933 534.219
#> 
#> $westmalle
#> <xy [141 x 2]>
#>       [,1]    [,2]   
#>  [1,]  71.579 397.265
#>  [2,]  69.657 384.100
#>  [3,]  68.203 371.283
#>  [4,]  67.184 358.631
#>  [5,]  66.545 346.000
#>  [6,] ...     ...    
#>  [7,]  86.438 462.937
#>  [8,]  83.128 450.288
#>  [9,]  79.862 437.435
#> [10,]  76.769 424.244
#> [11,]  73.970 410.751
#> 
#> $amrut
#> <xy [191 x 2]>
#>       [,1]    [,2]   
#>  [1,]  56.998 444.770
#>  [2,]  57.000 432.719
#>  [3,]  57.000 421.547
#>  [4,]  57.000 411.107
#>  [5,]  57.000 401.010
#>  [6,] ...     ...    
#>  [7,]  56.698 500.990
#>  [8,]  56.564 490.893
#>  [9,]  56.735 480.453
#> [10,]  56.903 469.281
#> [11,]  56.979 457.230
#> 
#> $ballantines
#> <xy [146 x 2]>
#>       [,1]    [,2]   
#>  [1,]  38.000 359.898
#>  [2,]  38.000 345.508
#>  [3,]  38.000 332.163
#>  [4,]  38.000 319.787
#>  [5,]  38.000 307.854
#>  [6,] ...     ...    
#>  [7,]  37.979 425.831
#>  [8,]  37.998 413.906
#>  [9,]  38.000 401.646
#> [10,]  38.000 388.643
#> [11,]  38.000 374.603
#> 
#> $bushmills
#> <xy [165 x 2]>
#>       [,1]    [,2]   
#>  [1,]  71.246 461.869
#>  [2,]  71.657 445.780
#>  [3,]  71.902 431.837
#>  [4,]  72.044 419.532
#>  [5,]  72.225 407.275
#>  [6,] ...     ...    
#>  [7,]  69.453 532.985
#>  [8,]  69.795 519.923
#>  [9,]  70.044 507.151
#> [10,]  70.332 493.772
#> [11,]  70.753 478.552
#> 
#> $chivas
#> <xy [164 x 2]>
#>       [,1]    [,2]   
#>  [1,]  36.939 440.024
#>  [2,]  32.886 427.027
#>  [3,]  30.615 414.411
#>  [4,]  29.594 402.017
#>  [5,]  29.311 389.755
#>  [6,] ...     ...    
#>  [7,]  82.518 502.956
#>  [8,]  71.499 491.647
#>  [9,]  60.806 479.546
#> [10,]  51.147 466.691
#> [11,]  43.062 453.364
#> 
#> $dalmore
#> <xy [155 x 2]>
#>       [,1]    [,2]   
#>  [1,]  57.659 375.663
#>  [2,]  50.677 360.974
#>  [3,]  46.176 347.732
#>  [4,]  43.714 336.319
#>  [5,]  42.576 326.418
#>  [6,] ...     ...    
#>  [7,] 104.815 434.792
#>  [8,]  96.709 425.896
#>  [9,]  87.474 416.227
#> [10,]  77.229 404.550
#> [11,]  66.854 390.689
#> 
#> $famousgrouse
#> <xy [169 x 2]>
#>       [,1]    [,2]   
#>  [1,]  98.246 316.511
#>  [2,]  98.656 305.461
#>  [3,]  98.891 295.889
#>  [4,]  98.979 287.877
#>  [5,]  98.998 280.617
#>  [6,] ...     ...    
#>  [7,]  96.649 362.331
#>  [8,]  96.852 354.662
#>  [9,]  97.055 347.061
#> [10,]  97.333 338.357
#> [11,]  97.753 327.952
#> 
#> $glendronach
#> <xy [197 x 2]>
#>       [,1]    [,2]   
#>  [1,]  73.161 439.523
#>  [2,]  73.376 426.996
#>  [3,]  73.623 416.180
#>  [4,]  73.828 406.734
#>  [5,]  73.945 397.604
#>  [6,] ...     ...    
#>  [7,]  73.272 493.593
#>  [8,]  72.780 484.278
#>  [9,]  72.738 474.738
#> [10,]  72.860 464.414
#> [11,]  73.002 452.543
#> 
#> $glenmorangie
#> <xy [179 x 2]>
#>       [,1]    [,2]   
#>  [1,]  53.491 523.707
#>  [2,]  53.714 509.245
#>  [3,]  54.110 495.790
#>  [4,]  54.666 482.786
#>  [5,]  55.367 469.890
#>  [6,] ...     ...    
#>  [7,]  61.326 593.486
#>  [8,]  58.253 581.092
#>  [9,]  55.901 567.845
#> [10,]  54.344 553.722
#> [11,]  53.606 538.840
#> 
#> $highlandpark
#> <xy [169 x 2]>
#>       [,1]    [,2]   
#>  [1,]  41.999 376.277
#>  [2,]  42.000 363.932
#>  [3,]  42.000 352.488
#>  [4,]  41.999 341.496
#>  [5,]  41.990 330.654
#>  [6,] ...     ...    
#>  [7,]  41.161 435.846
#>  [8,]  41.559 425.209
#>  [9,]  41.816 413.889
#> [10,]  41.944 401.871
#> [11,]  41.989 389.197
#> 
#> $jackdaniels
#> <xy [150 x 2]>
#>       [,1]    [,2]   
#>  [1,]  63.671 418.901
#>  [2,]  63.303 403.233
#>  [3,]  63.100 388.700
#>  [4,]  63.021 375.085
#>  [5,]  63.002 361.841
#>  [6,] ...     ...    
#>  [7,]  71.716 492.160
#>  [8,]  68.503 479.129
#>  [9,]  66.409 465.445
#> [10,]  65.074 450.819
#> [11,]  64.229 435.110
#> 
#> $jb
#> <xy [174 x 2]>
#>       [,1]    [,2]   
#>  [1,]  42.765 534.932
#>  [2,]  42.665 520.333
#>  [3,]  42.548 506.078
#>  [4,]  42.549 492.137
#>  [5,]  42.678 478.632
#>  [6,] ...     ...    
#>  [7,]  44.157 606.935
#>  [8,]  42.502 593.816
#>  [9,]  42.158 580.017
#> [10,]  42.406 565.264
#> [11,]  42.688 550.003
#> 
#> $johnniewalker
#> <xy [168 x 2]>
#>       [,1]    [,2]   
#>  [1,] 133.011 176.508
#>  [2,] 133.055 171.473
#>  [3,] 133.172 166.531
#>  [4,] 133.377 161.535
#>  [5,] 133.623 156.512
#>  [6,] ...     ...    
#>  [7,] 132.828 202.312
#>  [8,] 132.945 197.449
#>  [9,] 132.989 192.289
#> [10,] 132.999 187.000
#> [11,] 133.001 181.707
#> 
#> $magallan
#> <xy [141 x 2]>
#>       [,1]    [,2]   
#>  [1,]  77.868 399.683
#>  [2,]  78.615 386.038
#>  [3,]  79.363 373.104
#>  [4,]  80.044 360.777
#>  [5,]  80.623 348.861
#>  [6,] ...     ...    
#>  [7,]  75.243 463.874
#>  [8,]  75.378 452.285
#>  [9,]  75.812 440.162
#> [10,]  76.439 427.282
#> [11,]  77.144 413.653
#> 
#> $makersmark
#> <xy [177 x 2]>
#>       [,1]    [,2]   
#>  [1,]  37.525 435.373
#>  [2,]  27.732 423.418
#>  [3,]  20.666 412.615
#>  [4,]  16.138 402.522
#>  [5,]  13.179 391.851
#>  [6,] ...     ...    
#>  [7,]  82.520 483.483
#>  [8,]  75.050 475.300
#>  [9,]  67.617 467.043
#> [10,]  59.055 458.026
#> [11,]  48.673 447.391
#> 
#> $oban
#> <xy [179 x 2]>
#>       [,1]    [,2]   
#>  [1,]  73.622 460.061
#>  [2,]  73.829 446.971
#>  [3,]  73.956 434.885
#>  [4,]  74.044 423.827
#>  [5,]  74.171 413.286
#>  [6,] ...     ...    
#>  [7,]  73.512 519.919
#>  [8,]  73.067 509.173
#>  [9,]  73.006 498.229
#> [10,]  73.140 486.438
#> [11,]  73.368 473.526
#> 
#> $oldpotrero
#> <xy [131 x 2]>
#>       [,1]    [,2]   
#>  [1,]  85.447 310.509
#>  [2,]  77.952 299.076
#>  [3,]  71.374 287.883
#>  [4,]  65.991 276.844
#>  [5,]  62.039 266.052
#>  [6,] ...     ...    
#>  [7,] 118.970 367.179
#>  [8,] 114.434 356.717
#>  [9,] 108.587 345.839
#> [10,] 101.438 334.273
#> [11,]  93.479 322.317
#> 
#> $redbreast
#> <xy [177 x 2]>
#>       [,1]    [,2]   
#>  [1,] 108.163 234.343
#>  [2,] 104.224 228.226
#>  [3,] 101.412 222.116
#>  [4,]  99.503 216.089
#>  [5,]  98.277 210.214
#>  [6,] ...     ...    
#>  [7,] 136.134 261.497
#>  [8,] 131.064 256.587
#>  [9,] 125.305 251.595
#> [10,] 119.180 246.206
#> [11,] 113.262 240.394
#> 
#> $tamdhu
#> <xy [176 x 2]>
#>       [,1]    [,2]   
#>  [1,]  48.012 556.728
#>  [2,]  48.601 541.847
#>  [3,]  48.934 528.032
#>  [4,]  49.149 515.129
#>  [5,]  49.375 502.623
#>  [6,] ...     ...    
#>  [7,]  46.507 625.503
#>  [8,]  45.704 613.045
#>  [9,]  45.704 600.343
#> [10,]  46.294 586.766
#> [11,]  47.173 572.046
#> 
#> $wildturkey
#> <xy [185 x 2]>
#>       [,1]    [,2]   
#>  [1,]  16.903 574.266
#>  [2,]  17.487 557.405
#>  [3,]  17.836 541.766
#>  [4,]  17.968 527.150
#>  [5,]  17.997 513.014
#>  [6,] ...     ...    
#>  [7,]  22.608 651.347
#>  [8,]  18.978 637.815
#>  [9,]  16.966 623.683
#> [10,]  16.192 608.367
#> [11,]  16.320 591.657
#> 
#> $yoichi
#> <xy [123 x 2]>
#>       [,1]    [,2]   
#>  [1,]  68.829 386.756
#>  [2,]  68.956 370.655
#>  [3,]  69.044 355.443
#>  [4,]  69.171 341.289
#>  [5,]  69.377 328.022
#>  [6,] ...     ...    
#>  [7,]  68.444 460.009
#>  [8,]  68.149 447.070
#>  [9,]  68.186 433.619
#> [10,]  68.378 418.993
#> [11,]  68.623 403.158
#> 
#> attr(,"class")
#> [1] "out"  "coo"  "list"

# Smooth with fixed endpoints
coo_smooth_fixed(shapes$cat, n = 3)
#> <xy [120 x 2]>
#>       [,1]    [,2]   
#>  [1,] 200.000  62.000
#>  [2,] 199.828  58.406
#>  [3,] 201.453  55.328
#>  [4,] 204.078  52.172
#>  [5,] 205.234  48.547
#>  [6,] ...     ...    
#>  [7,] 218.734  46.969
#>  [8,] 213.516  49.188
#>  [9,] 208.828  53.531
#> [10,] 205.047  59.062
#> [11,] 202.000  65.000