Skip to contents

Center a shape around the origin using centering (subtract the mean).

Usage

coo_center(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.

Value

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

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

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

See also

coo_translate() for translation; get_centroid() for centroid coordinates

Examples

# Single shape
coo_center(shapes$cat)
#> <xy [120 x 2]>
#>       [,1]    [,2]   
#>  [1,]  11.875 -32.200
#>  [2,]   7.875 -38.200
#>  [3,]  11.875 -38.200
#>  [4,]  17.875 -40.200
#>  [5,]  20.875 -46.200
#>  [6,] ...     ...    
#>  [7,]  30.875 -49.200
#>  [8,]  24.875 -47.200
#>  [9,]  19.875 -41.200
#> [10,]  15.875 -35.200
#> [11,]  13.875 -29.200

# List of shapes
coo_center(bot$coo)
#> $brahma
#> <xy [138 x 2]>
#>       [,1]     [,2]    
#>  [1,] -138.058   17.130
#>  [2,] -135.058   -3.870
#>  [3,] -135.058  -14.870
#>  [4,] -132.058  -35.870
#>  [5,] -129.058  -56.870
#>  [6,] ...      ...     
#>  [7,] -141.058  112.130
#>  [8,] -142.058  101.130
#>  [9,] -142.058   80.130
#> [10,] -141.058   59.130
#> [11,] -140.058   49.130
#> 
#> $caney
#> <xy [168 x 2]>
#>       [,1]     [,2]    
#>  [1,] -129.708   27.244
#>  [2,] -129.708   17.244
#>  [3,] -128.708   -2.756
#>  [4,] -129.708  -12.756
#>  [5,] -128.708  -22.756
#>  [6,] ...      ...     
#>  [7,] -106.708  108.244
#>  [8,] -115.708   88.244
#>  [9,] -120.708   77.244
#> [10,] -123.708   67.244
#> [11,] -127.708   47.244
#> 
#> $chimay
#> <xy [189 x 2]>
#>       [,1]     [,2]    
#>  [1,] -120.011   18.190
#>  [2,] -120.011   10.190
#>  [3,] -120.011    3.190
#>  [4,] -119.011   -4.810
#>  [5,] -119.011  -12.810
#>  [6,] ...      ...     
#>  [7,] -110.011   64.190
#>  [8,] -115.011   56.190
#>  [9,] -118.011   49.190
#> [10,] -120.011   41.190
#> [11,] -121.011   33.190
#> 
#> $corona
#> <xy [129 x 2]>
#>       [,1]    [,2]   
#>  [1,] -94.016  18.767
#>  [2,] -94.016   8.767
#>  [3,] -95.016 -12.233
#>  [4,] -94.016 -22.233
#>  [5,] -94.016 -33.233
#>  [6,] ...     ...    
#>  [7,] -67.016  98.767
#>  [8,] -75.016  78.767
#>  [9,] -80.016  69.767
#> [10,] -84.016  58.767
#> [11,] -91.016  39.767
#> 
#> $deusventrue
#> <xy [152 x 2]>
#>       [,1]     [,2]    
#>  [1,] -105.559   13.737
#>  [2,] -109.559    4.737
#>  [3,] -117.559  -13.263
#>  [4,] -120.559  -22.263
#>  [5,] -127.559  -42.263
#>  [6,] ...      ...     
#>  [7,] -79.559   87.737 
#>  [8,] -82.559   77.737 
#>  [9,] -89.559   59.737 
#> [10,] -92.559   50.737 
#> [11,] -97.559   32.737 
#> 
#> $duvel
#> <xy [161 x 2]>
#>       [,1]     [,2]    
#>  [1,] -118.248   27.882
#>  [2,] -118.248   16.882
#>  [3,] -118.248    5.882
#>  [4,] -118.248    5.882
#>  [5,] -118.248   -5.118
#>  [6,] ...      ...     
#>  [7,] -105.248   81.882
#>  [8,] -110.248   70.882
#>  [9,] -114.248   60.882
#> [10,] -114.248   60.882
#> [11,] -116.248   49.882
#> 
#> $franziskaner
#> <xy [124 x 2]>
#>       [,1]     [,2]    
#>  [1,] -107.355   15.798
#>  [2,] -107.355   -5.202
#>  [3,] -107.355  -15.202
#>  [4,] -107.355  -34.202
#>  [5,] -107.355  -44.202
#>  [6,] ...      ...     
#>  [7,] -101.355  108.798
#>  [8,] -102.355   87.798
#>  [9,] -104.355   77.798
#> [10,] -107.355   56.798
#> [11,] -107.355   46.798
#> 
#> $grimbergen
#> <xy [126 x 2]>
#>       [,1]     [,2]    
#>  [1,] -124.746    9.135
#>  [2,] -126.746   -0.865
#>  [3,] -126.746  -21.865
#>  [4,] -126.746  -32.865
#>  [5,] -126.746  -42.865
#>  [6,] ...      ...     
#>  [7,]  -92.746   92.135
#>  [8,] -106.746   72.135
#>  [9,] -112.746   61.135
#> [10,] -116.746   51.135
#> [11,] -122.746   30.135
#> 
#> $guiness
#> <xy [183 x 2]>
#>       [,1]     [,2]    
#>  [1,] -113.202   12.945
#>  [2,] -113.202    4.945
#>  [3,] -113.202   -3.055
#>  [4,] -113.202  -12.055
#>  [5,] -113.202  -28.055
#>  [6,] ...      ...     
#>  [7,] -109.202   69.945
#>  [8,] -111.202   60.945
#>  [9,] -115.202   45.945
#> [10,] -114.202   37.945
#> [11,] -113.202   28.945
#> 
#> $hoegardeen
#> <xy [193 x 2]>
#>       [,1]     [,2]    
#>  [1,] -131.254   17.073
#>  [2,] -133.254    4.073
#>  [3,] -133.254   -7.927
#>  [4,] -133.254  -20.927
#>  [5,] -133.254  -33.927
#>  [6,] ...      ...     
#>  [7,] -115.254   92.073
#>  [8,] -119.254   79.073
#>  [9,] -122.254   67.073
#> [10,] -126.254   54.073
#> [11,] -127.254   41.073
#> 
#> $jupiler
#> <xy [156 x 2]>
#>       [,1]     [,2]    
#>  [1,] -120.603    4.026
#>  [2,] -121.603   -9.974
#>  [3,] -121.603  -22.974
#>  [4,] -121.603  -36.974
#>  [5,] -121.603  -50.974
#>  [6,] ...      ...     
#>  [7,] -101.603   86.026
#>  [8,] -106.603   72.026
#>  [9,] -109.603   59.026
#> [10,] -113.603   45.026
#> [11,] -116.603   31.026
#> 
#> $kingfisher
#> <xy [182 x 2]>
#>       [,1]    [,2]   
#>  [1,] -90.841  18.775
#>  [2,] -90.841   8.775
#>  [3,] -90.841  -0.225
#>  [4,] -90.841 -10.225
#>  [5,] -90.841 -20.225
#>  [6,] ...     ...    
#>  [7,] -80.841  76.775
#>  [8,] -83.841  67.775
#>  [9,] -85.841  57.775
#> [10,] -88.841  47.775
#> [11,] -88.841  37.775
#> 
#> $latrappe
#> <xy [136 x 2]>
#>       [,1]     [,2]    
#>  [1,] -150.037   44.985
#>  [2,] -151.037   32.985
#>  [3,] -151.037   19.985
#>  [4,] -151.037    7.985
#>  [5,] -151.037   -5.015
#>  [6,] ...      ...     
#>  [7,] -148.037  119.985
#>  [8,] -151.037  106.985
#>  [9,] -150.037   94.985
#> [10,] -150.037   81.985
#> [11,] -150.037   69.985
#> 
#> $lindemanskriek
#> <xy [176 x 2]>
#>       [,1]     [,2]    
#>  [1,] -103.926   21.597
#>  [2,] -103.926   13.597
#>  [3,] -108.926   -1.403
#>  [4,] -109.926  -10.403
#>  [5,] -109.926  -18.403
#>  [6,] ...      ...     
#>  [7,] -86.926   80.597 
#>  [8,] -88.926   72.597 
#>  [9,] -91.926   63.597 
#> [10,] -93.926   55.597 
#> [11,] -98.926   38.597 
#> 
#> $nicechouffe
#> <xy [146 x 2]>
#>       [,1]    [,2]   
#>  [1,] -88.555  22.877
#>  [2,] -89.555  14.877
#>  [3,] -93.555  -2.123
#>  [4,] -93.555 -11.123
#>  [5,] -94.555 -19.123
#>  [6,] ...     ...    
#>  [7,] -74.555  79.877
#>  [8,] -77.555  71.877
#>  [9,] -79.555  62.877
#> [10,] -81.555  55.877
#> [11,] -85.555  39.877
#> 
#> $pecheresse
#> <xy [129 x 2]>
#>       [,1]     [,2]    
#>  [1,] -112.302    5.473
#>  [2,] -114.302  -13.527
#>  [3,] -114.302  -22.527
#>  [4,] -115.302  -42.527
#>  [5,] -117.302  -61.527
#>  [6,] ...      ...     
#>  [7,]  -89.302   90.473
#>  [8,]  -92.302   80.473
#>  [9,]  -97.302   62.473
#> [10,] -102.302   43.473
#> [11,] -104.302   34.473
#> 
#> $sierranevada
#> <xy [176 x 2]>
#>       [,1]     [,2]    
#>  [1,] -105.580   11.432
#>  [2,] -105.580   -0.568
#>  [3,] -105.580   -0.568
#>  [4,] -105.580  -13.568
#>  [5,] -105.580  -25.568
#>  [6,] ...      ...     
#>  [7,] -103.580   73.432
#>  [8,] -105.580   60.432
#>  [9,] -107.580   48.432
#> [10,] -105.580   36.432
#> [11,] -105.580   36.432
#> 
#> $tanglefoot
#> <xy [174 x 2]>
#>       [,1]     [,2]    
#>  [1,] -126.586   20.828
#>  [2,] -126.586   12.828
#>  [3,] -126.586    4.828
#>  [4,] -126.586  -11.172
#>  [5,] -125.586  -19.172
#>  [6,] ...      ...     
#>  [7,] -122.586   76.828
#>  [8,] -125.586   68.828
#>  [9,] -126.586   60.828
#> [10,] -127.586   44.828
#> [11,] -127.586   36.828
#> 
#> $tauro
#> <xy [174 x 2]>
#>       [,1]     [,2]    
#>  [1,] -119.523    3.236
#>  [2,] -121.523   -8.764
#>  [3,] -121.523  -20.764
#>  [4,] -121.523  -33.764
#>  [5,] -121.523  -45.764
#>  [6,] ...      ...     
#>  [7,] -104.523   75.236
#>  [8,] -107.523   63.236
#>  [9,] -112.523   51.236
#> [10,] -114.523   39.236
#> [11,] -116.523   26.236
#> 
#> $westmalle
#> <xy [141 x 2]>
#>       [,1]    [,2]   
#>  [1,] -91.794  11.000
#>  [2,] -91.794   3.000
#>  [3,] -94.794 -14.000
#>  [4,] -94.794 -22.000
#>  [5,] -95.794 -39.000
#>  [6,] ...     ...    
#>  [7,] -75.794  78.000
#>  [8,] -78.794  69.000
#>  [9,] -81.794  53.000
#> [10,] -85.794  44.000
#> [11,] -87.794  28.000
#> 
#> $amrut
#> <xy [191 x 2]>
#>       [,1]     [,2]    
#>  [1,] -105.723   20.435
#>  [2,] -105.723   10.435
#>  [3,] -105.723    0.435
#>  [4,] -105.723   -9.565
#>  [5,] -105.723  -19.565
#>  [6,] ...      ...     
#>  [7,] -107.723   80.435
#>  [8,] -105.723   70.435
#>  [9,] -105.723   60.435
#> [10,] -105.723   50.435
#> [11,] -105.723   40.435
#> 
#> $ballantines
#> <xy [146 x 2]>
#>       [,1]     [,2]    
#>  [1,] -136.226   27.500
#>  [2,] -136.226   11.500
#>  [3,] -136.226    3.500
#>  [4,] -136.226  -11.500
#>  [5,] -136.226  -19.500
#>  [6,] ...      ...     
#>  [7,] -136.226   98.500
#>  [8,] -136.226   82.500
#>  [9,] -136.226   74.500
#> [10,] -136.226   58.500
#> [11,] -136.226   51.500
#> 
#> $bushmills
#> <xy [165 x 2]>
#>       [,1]    [,2]   
#>  [1,] -108.83   23.63
#>  [2,] -108.83    8.63
#>  [3,] -108.83   -7.37
#>  [4,] -108.83   -7.37
#>  [5,] -108.83  -22.37
#>  [6,] ...     ...    
#>  [7,] -110.83  100.63
#>  [8,] -110.83   85.63
#>  [9,] -110.83   69.63
#> [10,] -110.83   69.63
#> [11,] -110.83   54.63
#> 
#> $chivas
#> <xy [164 x 2]>
#>       [,1]     [,2]    
#>  [1,] -149.024   31.250
#>  [2,] -151.024   23.250
#>  [3,] -153.024    6.250
#>  [4,] -153.024   -1.750
#>  [5,] -153.024  -17.750
#>  [6,] ...      ...     
#>  [7,] -101.024   96.250
#>  [8,] -109.024   89.250
#>  [9,] -125.024   72.250
#> [10,] -131.024   64.250
#> [11,] -142.024   47.250
#> 
#> $dalmore
#> <xy [155 x 2]>
#>       [,1]     [,2]    
#>  [1,] -124.426   42.955
#>  [2,] -129.426   30.955
#>  [3,] -132.426   17.955
#>  [4,] -134.426    5.955
#>  [5,] -134.426   -6.045
#>  [6,] ...      ...     
#>  [7,]  -74.426  101.955
#>  [8,]  -74.426  101.955
#>  [9,]  -87.426   90.955
#> [10,]  -99.426   79.955
#> [11,] -109.426   67.955
#> 
#> $famousgrouse
#> <xy [169 x 2]>
#>       [,1]    [,2]   
#>  [1,] -75.107  13.793
#>  [2,] -75.107   3.793
#>  [3,] -75.107  -5.207
#>  [4,] -75.107 -15.207
#>  [5,] -75.107 -15.207
#>  [6,] ...     ...    
#>  [7,] -77.107  61.793
#>  [8,] -77.107  51.793
#>  [9,] -77.107  51.793
#> [10,] -77.107  42.793
#> [11,] -77.107  32.793
#> 
#> $glendronach
#> <xy [197 x 2]>
#>       [,1]     [,2]    
#>  [1,] -100.279   25.563
#>  [2,] -100.279   13.563
#>  [3,]  -99.279    1.563
#>  [4,]  -99.279    1.563
#>  [5,]  -99.279  -10.437
#>  [6,] ...      ...     
#>  [7,] -101.279   85.563
#>  [8,] -101.279   73.563
#>  [9,] -100.279   61.563
#> [10,] -100.279   61.563
#> [11,] -100.279   49.563
#> 
#> $glenmorangie
#> <xy [179 x 2]>
#>       [,1]     [,2]    
#>  [1,] -124.251   24.061
#>  [2,] -123.251    7.061
#>  [3,] -123.251    7.061
#>  [4,] -123.251   -8.939
#>  [5,] -122.251  -25.939
#>  [6,] ...      ...     
#>  [7,] -115.251  105.061
#>  [8,] -119.251   90.061
#>  [9,] -123.251   73.061
#> [10,] -124.251   56.061
#> [11,] -124.251   56.061
#> 
#> $highlandpark
#> <xy [169 x 2]>
#>       [,1]     [,2]    
#>  [1,] -125.485   24.373
#>  [2,] -125.485   10.373
#>  [3,] -125.485   10.373
#>  [4,] -125.485   -3.627
#>  [5,] -125.485  -17.627
#>  [6,] ...      ...     
#>  [7,] -126.485   94.373
#>  [8,] -125.485   80.373
#>  [9,] -125.485   66.373
#> [10,] -125.485   52.373
#> [11,] -125.485   52.373
#> 
#> $jackdaniels
#> <xy [150 x 2]>
#>       [,1]     [,2]    
#>  [1,] -119.887   26.240
#>  [2,] -119.887   13.240
#>  [3,] -119.887    0.240
#>  [4,] -119.887  -12.760
#>  [5,] -119.887  -25.760
#>  [6,] ...      ...     
#>  [7,] -112.887  105.240
#>  [8,] -114.887   91.240
#>  [9,] -117.887   78.240
#> [10,] -118.887   65.240
#> [11,] -117.887   52.240
#> 
#> $jb
#> <xy [174 x 2]>
#>       [,1]     [,2]    
#>  [1,] -129.615   21.994
#>  [2,] -129.615   10.994
#>  [3,] -130.615    0.994
#>  [4,] -130.615  -21.006
#>  [5,] -129.615  -32.006
#>  [6,] ...      ...     
#>  [7,] -130.615   96.994
#>  [8,] -132.615   85.994
#>  [9,] -130.615   75.994
#> [10,] -129.615   53.994
#> [11,] -129.615   42.994
#> 
#> $johnniewalker
#> <xy [168 x 2]>
#>       [,1]    [,2]   
#>  [1,] -41.494   9.435
#>  [2,] -41.494   5.435
#>  [3,] -41.494   1.435
#>  [4,] -41.494  -2.565
#>  [5,] -40.494 -10.565
#>  [6,] ...     ...    
#>  [7,] -41.494  37.435
#>  [8,] -41.494  33.435
#>  [9,] -41.494  25.435
#> [10,] -41.494  21.435
#> [11,] -41.494  17.435
#> 
#> $magallan
#> <xy [141 x 2]>
#>       [,1]    [,2]   
#>  [1,] -89.248   8.085
#>  [2,] -89.248  -6.915
#>  [3,] -87.248 -13.915
#>  [4,] -87.248 -27.915
#>  [5,] -86.248 -42.915
#>  [6,] ...     ...    
#>  [7,] -92.248  73.085
#>  [8,] -92.248  66.085
#>  [9,] -92.248  52.085
#> [10,] -90.248  37.085
#> [11,] -90.248  30.085
#> 
#> $makersmark
#> <xy [177 x 2]>
#>       [,1]     [,2]    
#>  [1,] -145.480   29.243
#>  [2,] -153.480   17.243
#>  [3,] -160.480    5.243
#>  [4,] -160.480    5.243
#>  [5,] -163.480   -8.757
#>  [6,] ...      ...     
#>  [7,]  -97.480   84.243
#>  [8,] -102.480   70.243
#>  [9,] -109.480   61.243
#> [10,] -109.480   61.243
#> [11,] -123.480   51.243
#> 
#> $oban
#> <xy [179 x 2]>
#>       [,1]     [,2]    
#>  [1,] -102.531    9.346
#>  [2,] -102.531    0.346
#>  [3,] -102.531  -16.654
#>  [4,] -102.531  -24.654
#>  [5,] -102.531  -33.654
#>  [6,] ...      ...     
#>  [7,] -104.531   69.346
#>  [8,] -103.531   60.346
#>  [9,] -103.531   52.346
#> [10,] -103.531   43.346
#> [11,] -103.531   26.346
#> 
#> $oldpotrero
#> <xy [131 x 2]>
#>       [,1]     [,2]    
#>  [1,]  -82.916   22.237
#>  [2,]  -88.916   14.237
#>  [3,]  -94.916    6.237
#>  [4,] -102.916  -10.763
#>  [5,] -105.916  -19.763
#>  [6,] ...      ...     
#>  [7,] -46.916   81.237 
#>  [8,] -48.916   73.237 
#>  [9,] -53.916   64.237 
#> [10,] -64.916   48.237 
#> [11,] -70.916   39.237 
#> 
#> $redbreast
#> <xy [177 x 2]>
#>       [,1]    [,2]   
#>  [1,] -71.831  30.802
#>  [2,] -73.831  25.802
#>  [3,] -75.831  21.802
#>  [4,] -78.831  11.802
#>  [5,] -78.831   7.802
#>  [6,] ...     ...    
#>  [7,] -39.831  58.802
#>  [8,] -44.831  54.802
#>  [9,] -49.831  50.802
#> [10,] -58.831  43.802
#> [11,] -63.831  39.802
#> 
#> $tamdhu
#> <xy [176 x 2]>
#>       [,1]     [,2]    
#>  [1,] -124.795   21.438
#>  [2,] -124.795    9.438
#>  [3,] -124.795   -3.562
#>  [4,] -124.795  -15.562
#>  [5,] -124.795  -27.562
#>  [6,] ...      ...     
#>  [7,] -127.795   94.438
#>  [8,] -129.795   82.438
#>  [9,] -128.795   70.438
#> [10,] -127.795   58.438
#> [11,] -126.795   46.438
#> 
#> $wildturkey
#> <xy [185 x 2]>
#>       [,1]     [,2]    
#>  [1,] -155.724   31.503
#>  [2,] -155.724   17.503
#>  [3,] -155.724    3.503
#>  [4,] -155.724  -10.497
#>  [5,] -155.724  -24.497
#>  [6,] ...      ...     
#>  [7,] -153.724  113.503
#>  [8,] -155.724  100.503
#>  [9,] -158.724   87.503
#> [10,] -158.724   73.503
#> [11,] -158.724   59.503
#> 
#> $yoichi
#> <xy [123 x 2]>
#>       [,1]     [,2]    
#>  [1,] -112.276   22.846
#>  [2,] -112.276    7.846
#>  [3,] -112.276   -6.154
#>  [4,] -112.276  -21.154
#>  [5,] -112.276  -36.154
#>  [6,] ...      ...     
#>  [7,] -113.276   95.846
#>  [8,] -113.276   88.846
#>  [9,] -113.276   73.846
#> [10,] -113.276   59.846
#> [11,] -112.276   44.846
#> 
#> attr(,"class")
#> [1] "out"  "coo"  "list"

# Tibble
coo_center(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