Análise de ortomosaico, contagem do estande e área do dossel do experimento de batata no software RStudio com o pacote FIELDimageR

Author

João Paulo Silva Pavan

#LGN0313 - Melhoramento Genético 2025
#Experimento Batata Inglesa 29 dias após o plantio (DAP)

#João Paulo Silva Pavan
#joaosilvapavan@usp.br
#Pacotes (packages) utilizados para análise
#Instalar - use o códio install.package ("Coloque o nome do pacote entre aspas")
#Carregar o pacote necessário para análises: library("Coloque o nome do pacote entre aspas")
library(reshape2)
library(ggplot2)
Warning: pacote 'ggplot2' foi compilado no R versão 4.4.3
library(openxlsx)
library(pliman)
|======================================================|
| Welcome to the pliman package (version 3.0.0)!       |
| Developed collaboratively by NEPEM - nepemufsc.com   |
| Group lead: Prof. Tiago Olivoto                      |
| For citation: type `citation('pliman')`              |
| We welcome your feedback and suggestions!            |
|======================================================|
library(plimanshiny)
|============================================================|
| Welcome to the plimanShiny package!                        |
| A Shiny App for the pliman package (version v0.2.0)        |
| Developed collaboratively by NEPEM - nepemufsc.com         |
| Group lead: Prof. Tiago Olivoto                            |
| For citation: type `citation('plimanshiny')`               |
| We welcome your feedback and suggestions!                  |
|============================================================|
library(leafsync)
library(mapedit)
library(mapview)
library(terra)
Warning: pacote 'terra' foi compilado no R versão 4.4.3
terra 1.8.42

Anexando pacote: 'terra'
O seguinte objeto é mascarado por 'package:pliman':

    distance
library(FIELDimageR)
library(FIELDimageR.Extra)
Carregando pacotes exigidos: nlme
Warning: pacote 'nlme' foi compilado no R versão 4.4.3
library(sf)
Warning: pacote 'sf' foi compilado no R versão 4.4.3
Linking to GEOS 3.13.0, GDAL 3.10.1, PROJ 9.5.1; sf_use_s2() is TRUE

Anexando pacote: 'sf'
O seguinte objeto é mascarado por 'package:pliman':

    %>%
library(raster)
Warning: pacote 'raster' foi compilado no R versão 4.4.3
Carregando pacotes exigidos: sp

Anexando pacote: 'raster'
O seguinte objeto é mascarado por 'package:nlme':

    getData
library(parallel)
library(foreach)
library(doParallel)
Carregando pacotes exigidos: iterators
library(iterators)
#install.packages("BiocManager") 
library(EBImage)

Anexando pacote: 'EBImage'
Os seguintes objetos são mascarados por 'package:raster':

    flip, rotate
Os seguintes objetos são mascarados por 'package:terra':

    flip, rotate, thresh, watershed
O seguinte objeto é mascarado por 'package:pliman':

    otsu
library(dplyr)

Anexando pacote: 'dplyr'
O seguinte objeto é mascarado por 'package:EBImage':

    combine
Os seguintes objetos são mascarados por 'package:raster':

    intersect, select, union
O seguinte objeto é mascarado por 'package:nlme':

    collapse
Os seguintes objetos são mascarados por 'package:terra':

    intersect, union
O seguinte objeto é mascarado por 'package:pliman':

    %>%
Os seguintes objetos são mascarados por 'package:stats':

    filter, lag
Os seguintes objetos são mascarados por 'package:base':

    intersect, setdiff, setequal, union
library(tidyr)

Anexando pacote: 'tidyr'
O seguinte objeto é mascarado por 'package:raster':

    extract
O seguinte objeto é mascarado por 'package:terra':

    extract
O seguinte objeto é mascarado por 'package:pliman':

    %>%
O seguinte objeto é mascarado por 'package:reshape2':

    smiths
#Croqui da área do experimento de batata 
croqui =read.xlsx("C://Users//joaop//Desktop//LGN313//PotatoTrial//gen_potato_trial.xlsx") 
# substitua //Users//joaop//Desktop//LGN313//PotatoTrial// pelo código de suas pastas -> clique com o botão direito do mouse sobre o arquivo gen_potato_trial.xlsx e clique em "Copiar como caminho" -> lembrar de alterar as barras para //
#visualização da tabela
View(croqui)
#estrutura da tabela: 
str(croqui)
'data.frame':   80 obs. of  5 variables:
 $ Treat: chr  "R14_11" "R23_32" "ASTERIX" "R71_02" ...
 $ Row  : num  1 1 1 1 1 1 1 1 1 1 ...
 $ Col  : num  1 2 3 4 5 6 7 8 9 10 ...
 $ Block: num  1 1 1 1 1 1 1 1 1 1 ...
 $ Plot : chr  "01" "02" "03" "04" ...
#transformação das colunas 
croqui = transform(croqui,
                   Block = factor(Block)) #fator
#visualização das primeiras linhas 
head(croqui)
    Treat Row Col Block Plot
1  R14_11   1   1     1   01
2  R23_32   1   2     1   02
3 ASTERIX   1   3     1   03
4  R71_02   1   4     1   04
5  R50_94   1   5     1   05
6 R50_120   1   6     1   06
#visualização das últimas linhas
tail(croqui)
     Treat Row Col Block Plot
75  R71_02   4  15     2   75
76 R50_120   4  16     2   76
77  R47_28   4  17     2   77
78  R23_12   4  18     2   78
79  R50_18   4  19     2   79
80  R14_17   4  20     2   80
#Importar e cortar o ortomosaico 
x11() #Abrirá uma nova janela

#Data da aquisição das imagens a uma altura de 15m de voo: 08/04/2025 
Potato_trial = rast(fieldCrop("C://Users//joaop//Desktop//LGN313//PotatoTrial//Orthomosaic_PotatoTrial_15m_08_04_25.tif")) 
Warning: [minmax] min and max values not available for all layers. See
'setMinMax' or 'global'
[1] "4 layers available"
[1] "Select 4 points at the corners of field of interest in the plots space."
#irá abrir uma janela e você terá que demarcar 4 pontos vermelhos nas bordas do experimento (incluindo a bordadura) para o corte do ortomosaico

#Visualização do ortomosaico após o corte
plotRGB(Potato_trial)
# Codigo para fazer o mapa e incluir as informações nas parcelas de acordo com a tabela do croqui importada
map_potato = fieldMap(fieldPlot = croqui$Plot, fieldColumn = croqui$Col, 
                      fieldRow = croqui$Row, decreasing = F)
#Código para aplicação de índices vegetativos no ortomosaico
potatoindex = fieldIndex(mosaic = Potato_trial, Red = 1, Green = 2, Blue = 3, 
                   index = c("BI", "NGRDI","BGI", "GLI",
                             "VARI", "HUE", "HI", "SCI"),
                   myIndex = c("(Green-0.39)*(Red-0.61)*Blue", 
                               "(2*Green)-Red-Blue", 
                               "(Green)/(Red+Green+Blue)", 
                               "(0.0441*Red) - (0.811*Green)
                               + (0.385*Blue)+ 18.787"))
[1] "4 layers available"

#Observar qual(is) índice(s) realizam uma boa segmentação, principalmente entre solo e planta 
#Neste caso, podemos observar que o índice HUE pode ser utilizado
#Histograma HUE
hist(potatoindex$HUE)

#Visualização índice HUE
plot(potatoindex$HUE)

#De acordo com os valores do índice HUE, variando de -1.5 a 1.5, apresentados no histograma e no mapa, escolha um valor para realizar a segmentação, no caso, cropValue =1.4 
potato_HUE = fieldMask(mosaic = Potato_trial, Red = 1, Green = 2,
                       Blue = 3, index = "HUE", cropValue =1.4, cropAbove = T)
[1] "4 layers available"

#Criar o shapefile (~ camadas) das parcelas 

shape_potato = fieldShape_render(mosaic = Potato_trial, ncols = 20,nrows = 4, fieldData = croqui, fieldMap = map_potato, PlotID = "Plot",buffer = -0.02)
[1] "Starting analysis ..."
[1] "Use 'Draw Marker' to select 4 points at the corners of the field and press 'DONE'. Attention is very important; start clicking from left to the right and top to bottom."
Carregando namespace exigido: leaflet.extras
Carregando namespace exigido: miniUI
Carregando pacotes exigidos: shiny

Listening on http://127.0.0.1:6516
Warning: `select_()` was deprecated in dplyr 0.7.0.
ℹ Please use `select()` instead.
ℹ The deprecated feature was likely used in the mapedit package.
  Please report the issue at <https://github.com/r-spatial/mapedit/issues>.
[1] "Almost there ..."
[1] "End!"
#Ao lado direito inferior, irá abrir um mapa na janela "Viewer" e será necessário usar o "Draw Marker" (Pingo) para demarcar 4 pontos nas bordas do experimento (nesta etapa, não considerar as bordaduras, apenas as 80 parcelas) 
#Dica: Use o "Draw Polygon" para demarcar a área. Em seguida, coloque os 4 "Draw Marker" nos vértices no sentido anti-horário da esquerda inferior para direita inferior, direita superior e esquerda superior. Após esta etapa, clique no ícone da borracha para apagar o polígono e deixar somente os 4 "Draw Markers"

#salvar

#st_write(shape_potato, "shape_potato.shp")
#Importar shapefile (.shp) salvo (criado no código acima - para habilitar, remova o "#" da frente do código shape_potato, assim como st_write)
#sf_package
shape_potato = st_read("C://Users//joaop//Documents//FIELDimageR.Extra//shape_potato.shp")
Reading layer `shape_potato' from data source 
  `C:\Users\joaop\Documents\FIELDimageR.Extra\shape_potato.shp' 
  using driver `ESRI Shapefile'
Simple feature collection with 80 features and 7 fields
Geometry type: POLYGON
Dimension:     XY
Bounding box:  xmin: 229099.7 ymin: 7486382 xmax: 229126.5 ymax: 7486407
Projected CRS: +proj=utm +zone=23 +south +datum=WGS84 +units=m +no_defs
#Visualizar o shapefile 
fv1 = fieldView(mosaic = Potato_trial, fieldShape = shape_potato,
          type = 2, alpha = 0.2)
[1] "Starting analysis ..."
[1] "End!"
fv1
#Clique sobre uma parcela para obter sua informação
#Visualizar o shapefile com o índice vegetativo HUE
fv2 = fieldView(mosaic = potato_HUE$mask, fieldShape = shape_potato,
          type = 2, alpha = 0.2)
[1] "Starting analysis ..."
[1] "End!"
fv2
#Remover solo 
potato_remsoil = fieldMask(mosaic = Potato_trial, 
          Red = 1, Green = 2, Blue = 3, 
          index = "HUE")
[1] "4 layers available"

#Código atualizado do pacote FIELDimageR (versão 0.6.2)
#Função para contagem de plantas (estande) - sem filtros
potatocount = fieldCount(mosaic = potato_HUE$mask,
                         fieldShape = shape_potato,
                         plot = T,
                         col = "blue")

#Novo shapefile com objetos (plantas). Dados a nível de parcela (plots)
potatocount$plot_level
Simple feature collection with 80 features and 5 fields
Geometry type: POLYGON
Dimension:     XY
Bounding box:  xmin: 229099.7 ymin: 7486382 xmax: 229126.5 ymax: 7486407
Projected CRS: +proj=utm +zone=23 +south +datum=WGS84 +units=m +no_defs
# A tibble: 80 × 6
      ID  area perimeter count mean_width                               geometry
   <int> <dbl>     <dbl> <int>      <dbl>                          <POLYGON [m]>
 1     1 0.082      3.50     6      0.121 ((229099.7 7486396, 229100.4 7486397,…
 2     2 0.032      1.50     2      0.15  ((229100.5 7486397, 229101.2 7486397,…
 3     3 0.012      0.6      2      0.075 ((229101.2 7486397, 229101.9 7486398,…
 4     4 0.147      3.10     3      0.227 ((229101.9 7486398, 229102.6 7486398,…
 5     5 0.005      0.4      2      0.05  ((229102.6 7486398, 229103.3 7486399,…
 6     6 0.072      3.20     3      0.158 ((229103.4 7486399, 229104.1 7486399,…
 7     7 0.12       3.80     5      0.16  ((229104.1 7486399, 229104.8 7486400,…
 8     8 0.022      1.40     4      0.078 ((229104.8 7486400, 229105.5 7486401,…
 9     9 0.092      2.70     3      0.158 ((229105.6 7486401, 229106.3 7486401,…
10    10 0.037      2.10     5      0.087 ((229106.3 7486401, 229107 7486402, 2…
# ℹ 70 more rows
#Visualização resultado fieldcount() sem filtros
fv3 = fieldView(mosaic = potato_remsoil$newMosaic,
          fieldShape = potatocount$plot_level,
          type = 2,
          alpha = 0.2)
[1] "Starting analysis ..."
[1] "End!"
fv3
#Novo Shapefile a nível de objetos (plantas - clones). Informações das plantas
potatocount$object_level
Simple feature collection with 2407 features and 6 fields
Geometry type: GEOMETRY
Dimension:     XY
Bounding box:  xmin: 229095.8 ymin: 7486378 xmax: 229131.6 ymax: 7486412
Projected CRS: PROJCRS["unknown",
    BASEGEOGCRS["unknown",
        DATUM["World Geodetic System 1984",
            ELLIPSOID["WGS 84",6378137,298.257223563,
                LENGTHUNIT["metre",1]],
            ID["EPSG",6326]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8901]]],
    CONVERSION["UTM zone 23S",
        METHOD["Transverse Mercator",
            ID["EPSG",9807]],
        PARAMETER["Latitude of natural origin",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8801]],
        PARAMETER["Longitude of natural origin",-45,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8802]],
        PARAMETER["Scale factor at natural origin",0.9996,
            SCALEUNIT["unity",1],
            ID["EPSG",8805]],
        PARAMETER["False easting",500000,
            LENGTHUNIT["metre",1],
            ID["EPSG",8806]],
        PARAMETER["False northing",10000000,
            LENGTHUNIT["metre",1],
            ID["EPSG",8807]],
        ID["EPSG",16123]],
    CS[Cartesian,2],
        AXIS["(E)",east,
            ORDER[1],
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]],
        AXIS["(N)",north,
            ORDER[2],
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]]]
First 10 features:
   ID       area perimeter    width        x       y
1   1 10.9699865 21.291501 3.463422 229097.3 7486380
2   2 12.9039759 33.086865 3.975385 229130.1 7486410
3   3  9.1707592 22.290601 3.483873 229097.4 7486411
4   4  1.4049263 12.194617 1.399749 229126.7 7486411
5   5  3.1392578 20.891798 2.028176 229116.9 7486410
6   6  3.6034381 29.388023 2.368059 229098.7 7486408
7   7  3.1667164 26.789029 2.057909 229097.7 7486385
8   8  1.1429186 11.295679 1.041598 229096.7 7486408
9   9  0.9732366 12.895077 1.242373 229115.9 7486410
10 10  0.9956928  8.396649 1.183949 229115.5 7486411
                         geometry
1  MULTIPOLYGON (((229099.7 74...
2  MULTIPOLYGON (((229127.7 74...
3  MULTIPOLYGON (((229099.9 74...
4  MULTIPOLYGON (((229127.7 74...
5  MULTIPOLYGON (((229116.1 74...
6  MULTIPOLYGON (((229097.6 74...
7  MULTIPOLYGON (((229097.4 74...
8  MULTIPOLYGON (((229096.2 74...
9  MULTIPOLYGON (((229115.3 74...
10 MULTIPOLYGON (((229114.9 74...
#Visualização resultado fieldcount() sem filtros
fv4 = fieldView(mosaic = potato_remsoil$newMosaic,
          fieldShape = potatocount$object_level,
          type = 2,
          alpha = 0.5)
[1] "Starting analysis ..."
[1] "End!"
fv4
#Função para contagem de plantas (estande) - com filtro: watershed (nível de separação dos indivíduos) =0.09 

potatocount3 = fieldCount(mosaic = potato_remsoil$mask,
                         fieldShape = shape_potato,
                         watershed = 0.09,
                         plot = T)

#Visualização resultado fieldcount() a nível de objetos (indivíduos) com o filtro watershed = 0.09
potatocount3$object_level
Simple feature collection with 3416 features and 6 fields
Geometry type: GEOMETRY
Dimension:     XY
Bounding box:  xmin: 229095.8 ymin: 7486378 xmax: 229131.6 ymax: 7486412
Projected CRS: PROJCRS["unknown",
    BASEGEOGCRS["unknown",
        DATUM["World Geodetic System 1984",
            ELLIPSOID["WGS 84",6378137,298.257223563,
                LENGTHUNIT["metre",1]],
            ID["EPSG",6326]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8901]]],
    CONVERSION["UTM zone 23S",
        METHOD["Transverse Mercator",
            ID["EPSG",9807]],
        PARAMETER["Latitude of natural origin",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8801]],
        PARAMETER["Longitude of natural origin",-45,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8802]],
        PARAMETER["Scale factor at natural origin",0.9996,
            SCALEUNIT["unity",1],
            ID["EPSG",8805]],
        PARAMETER["False easting",500000,
            LENGTHUNIT["metre",1],
            ID["EPSG",8806]],
        PARAMETER["False northing",10000000,
            LENGTHUNIT["metre",1],
            ID["EPSG",8807]],
        ID["EPSG",16123]],
    CS[Cartesian,2],
        AXIS["(E)",east,
            ORDER[1],
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]],
        AXIS["(N)",north,
            ORDER[2],
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]]]
First 10 features:
   ID       area perimeter     width        x       y
1   1 10.9325522 20.291860 3.4634221 229097.3 7486380
2   2 11.0348709 22.291051 3.6704913 229130.2 7486410
3   3  9.0410002 20.891212 3.3866053 229097.4 7486411
4   4  0.3194132  3.298283 0.3999283 229126.6 7486412
5   5  0.3443737  3.398490 0.6183386 229116.6 7486410
6   6  0.8135071  5.597646 1.1662544 229116.8 7486411
7   7  0.5464985  4.497933 0.7429686 229116.7 7486409
8   8  0.1522222  2.198975 0.3951961 229117.0 7486410
9   9  1.1329347  8.196730 1.3279672 229098.4 7486409
10 10  0.2695083  3.098589 0.3951961 229116.8 7486410
                         geometry
1  MULTIPOLYGON (((229099.7 74...
2  MULTIPOLYGON (((229130.2 74...
3  MULTIPOLYGON (((229100 7486...
4  POLYGON ((229125.9 7486412,...
5  POLYGON ((229116.2 7486410,...
6  MULTIPOLYGON (((229117.1 74...
7  POLYGON ((229116.2 7486410,...
8  POLYGON ((229117 7486410, 2...
9  MULTIPOLYGON (((229098.1 74...
10 POLYGON ((229117.1 7486410,...
fv5 = fieldView(mosaic = potato_remsoil$newMosaic,
          fieldShape = potatocount3$object_level,
          type = 2,
          alpha = 0.2)
[1] "Starting analysis ..."
[1] "End!"
fv5
#Averiguar estatística descritiva sobre o perímetro dos objetos (indivíduos)
(histograma = hist(potatocount3$object_level$perimeter, breaks=30)) #histograma

$breaks
 [1]  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

$counts
 [1] 1916  834  416  153   57   19    9    2    3    2    0    0    0    0    0
[16]    0    1    0    1    0    2    0    1

$density
 [1] 0.5608899297 0.2441451991 0.1217798595 0.0447892272 0.0166861827
 [6] 0.0055620609 0.0026346604 0.0005854801 0.0008782201 0.0005854801
[11] 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000
[16] 0.0000000000 0.0002927400 0.0000000000 0.0002927400 0.0000000000
[21] 0.0005854801 0.0000000000 0.0002927400

$mids
 [1]  0.5  1.5  2.5  3.5  4.5  5.5  6.5  7.5  8.5  9.5 10.5 11.5 12.5 13.5 14.5
[16] 15.5 16.5 17.5 18.5 19.5 20.5 21.5 22.5

$xname
[1] "potatocount3$object_level$perimeter"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"
(perimetro_maximo = max(potatocount3$object_level$perimeter)) #valor máximo perímetro objeto
[1] 22.29105
(perimetro_minimo = min(potatocount3$object_level$perimeter)) #Valor mínimo perímetro objeto
[1] 0.1999191
(perimetro_medio = mean(potatocount3$object_level$perimeter)) #Média perímetro objeto
[1] 1.212803
#Função para contagem de plantas (estande) - com filtro obtido na análise anterior sobre estatística descritiva. Selecionar objetos com perímetro > 0.35 e <4
potatofinalcount = potatocount3$object_level %>%
  dplyr::filter(perimeter>0.35 & perimeter<4)
#Visualização do mapa
mv1 = mapview(list(shape_potato, potatofinalcount))
mv1
#Após a visualização, observa que ainda existe alguns objetos que não correspondem as plantas, como o cano da irrigação, por exemplo. A partir do número deste objeto identificado, você poderá removê-lo de acordo com os seguintes códigos:
removeID = c(1592, 1353, 1349, 1480, 563)
potatofinalcount2 = potatofinalcount %>%
  dplyr::filter(!ID %in% removeID)

#Visualização do mapa após a remoção dos objetos 1592, 1353, 1349, 1480, 563
mv2 = mapview(list(shape_potato, potatofinalcount2))
mv2
#Visualizar resultado em conjunto com o mapa original Potato_trial
v1 = fieldView(Potato_trial)
[1] "Starting analysis ..."
[1] "End!"
v2 = mapview(list(shape_potato, potatofinalcount2))
sync(v1, v2)
#Fazer uma tabela com os resultados da contagem do estande (coluna count), da largura média dos objetos (coluna mean_width), da área média do dossel (coluna mean_area) e área total do dossel (coluna total_plant_area)
potatofinalcount2transf = st_transform(potatofinalcount2, st_crs(shape_potato))

plot_area = shape_potato %>%
  mutate(plot_area = st_area(.)) %>%
  st_drop_geometry() %>%
  select(PlotID, plot_area)

intersected = st_intersection(potatofinalcount2, shape_potato)
Warning: attribute variables are assumed to be spatially constant throughout
all geometries
potato_summary = intersected %>%
  st_drop_geometry() %>%
  group_by(PlotID) %>%
  summarise(
    count = n(),
    mean_width = mean(width, na.rm = T),
    mean_area = mean(area, na.rm = T),
    total_plant_area = sum(area, na.rm = T)
  ) %>%
  ungroup()

potato_plot_level_complete = plot_area %>%
  left_join(potato_summary, by = "PlotID") %>%
  mutate(
    count = replace_na(count,0),
    mean_width = replace_na(mean_width, 0),
    mean_area = replace_na(total_plant_area, 0))

print(potato_plot_level_complete)
   PlotID      plot_area count mean_width   mean_area total_plant_area
1      01 3.980508 [m^2]     5 0.14595749 0.087344525      0.087344525
2      02 3.980508 [m^2]     4 0.17307036 0.114792705      0.114792705
3      03 3.980508 [m^2]     8 0.22008467 0.339376521      0.339376521
4      04 3.980508 [m^2]     7 0.20167101 0.274506308      0.274506308
5      05 3.980508 [m^2]     4 0.37204832 0.426717971      0.426717971
6      06 3.980507 [m^2]     5 0.26310167 0.289469218      0.289469218
7      07 3.980507 [m^2]     7 0.23765620 0.304438511      0.304438511
8      08 3.980507 [m^2]     4 0.24427212 0.214614059      0.214614059
9      09 3.980507 [m^2]     2 0.12492132 0.024956156      0.024956156
10     10 3.980507 [m^2]     2 0.13819515 0.042424898      0.042424898
11     11 3.980506 [m^2]     8 0.15081053 0.159717503      0.159717503
12     12 3.980506 [m^2]     2 0.09466576 0.014969915      0.014969915
13     13 3.980506 [m^2]     8 0.30195656 0.623856428      0.623856428
14     14 3.980506 [m^2]     4 0.24922881 0.227080677      0.227080677
15     15 3.980506 [m^2]     9 0.19782982 0.299465075      0.299465075
16     16 3.980506 [m^2]     8 0.27357537 0.466648177      0.466648177
17     17 3.980506 [m^2]     5 0.25138125 0.262026953      0.262026953
18     18 3.980506 [m^2]     5 0.23831291 0.239570700      0.239570700
19     19 3.980506 [m^2]     8 0.24592356 0.439205332      0.439205332
20     20 3.980505 [m^2]     3 0.14020646 0.054900279      0.054900279
21     21 3.980504 [m^2]     9 0.21208254 0.386792303      0.386792303
22     22 3.980504 [m^2]     5 0.16191013 0.137246611      0.137246611
23     23 3.980504 [m^2]     4 0.14626820 0.082350517      0.082350517
24     24 3.980504 [m^2]     4 0.13527810 0.049906179      0.049906179
25     25 3.980504 [m^2]     7 0.20453855 0.264528605      0.264528605
26     26 3.980504 [m^2]     6 0.30091155 0.446695675      0.446695675
27     27 3.980504 [m^2]     6 0.19765391 0.207121280      0.207121280
28     28 3.980504 [m^2]     8 0.22119719 0.314421374      0.314421374
29     29 3.980504 [m^2]    10 0.24030093 0.449178733      0.449178733
30     30 3.980504 [m^2]     2 0.22140245 0.107304273      0.107304273
31     31 3.980503 [m^2]     5 0.13491135 0.079861806      0.079861806
32     32 3.980503 [m^2]     2 0.14992810 0.032438964      0.032438964
33     33 3.980503 [m^2]     1 0.09993706 0.009980951      0.009980951
34     34 3.980503 [m^2]     3 0.22654182 0.147229843      0.147229843
35     35 3.980503 [m^2]     0 0.00000000 0.000000000               NA
36     36 3.980502 [m^2]     2 0.21233603 0.067378501      0.067378501
37     37 3.980502 [m^2]     4 0.18769784 0.117289469      0.117289469
38     38 3.980502 [m^2]     2 0.10602313 0.017465610      0.017465610
39     39 3.980502 [m^2]     3 0.17985449 0.087342358      0.087342358
40     40 3.980502 [m^2]     2 0.12494383 0.024956621      0.024956621
41     41 3.980507 [m^2]     9 0.11613327 0.127262489      0.127262489
42     42 3.980507 [m^2]     2 0.13316963 0.037432396      0.037432396
43     43 3.980507 [m^2]     3 0.23356490 0.094829044      0.094829044
44     44 3.980507 [m^2]     7 0.22223914 0.299457275      0.299457275
45     45 3.980507 [m^2]     5 0.24220643 0.359342771      0.359342771
46     46 3.980507 [m^2]     0 0.00000000 0.000000000               NA
47     47 3.980507 [m^2]     4 0.33467893 0.314425966      0.314425966
48     48 3.980507 [m^2]     3 0.22975324 0.147228339      0.147228339
49     49 3.980506 [m^2]     6 0.20572809 0.239569414      0.239569414
50     50 3.980506 [m^2]     1 0.09993706 0.009979826      0.009979826
51     51 3.980505 [m^2]     8 0.23313548 0.329396409      0.329396409
52     52 3.980505 [m^2]     4 0.19763814 0.154714880      0.154714880
53     53 3.980505 [m^2]     3 0.16828742 0.107309185      0.107309185
54     54 3.980505 [m^2]     3 0.13189501 0.079847311      0.079847311
55     55 3.980505 [m^2]     4 0.17024763 0.219597198      0.219597198
56     56 3.980505 [m^2]     2 0.28859044 0.089828173      0.089828173
57     57 3.980505 [m^2]     5 0.22842887 0.219595138      0.219595138
58     58 3.980505 [m^2]     2 0.34977970 0.194651956      0.194651956
59     59 3.980505 [m^2]     7 0.24931185 0.399262916      0.399262916
60     60 3.980505 [m^2]     2 0.09995957 0.022458420      0.022458420
61     61 3.980504 [m^2]     9 0.30829058 0.663785264      0.663785264
62     62 3.980504 [m^2]    10 0.23835894 0.439191422      0.439191422
63     63 3.980504 [m^2]     7 0.27776649 0.439202158      0.439202158
64     64 3.980504 [m^2]     4 0.24368977 0.172187948      0.172187948
65     65 3.980503 [m^2]     6 0.23627372 0.491608608      0.491608608
66     66 3.980503 [m^2]     0 0.00000000 0.000000000               NA
67     67 3.980503 [m^2]     7 0.26566535 0.399276068      0.399276068
68     68 3.980503 [m^2]     4 0.29518929 0.299460569      0.299460569
69     69 3.980503 [m^2]     6 0.21938782 0.239563693      0.239563693
70     70 3.980503 [m^2]     6 0.14557134 0.112295323      0.112295323
71     71 3.980502 [m^2]     3 0.21656781 0.124775784      0.124775784
72     72 3.980502 [m^2]     7 0.21985496 0.274500484      0.274500484
73     73 3.980502 [m^2]     7 0.17824421 0.204630288      0.204630288
74     74 3.980502 [m^2]     7 0.26143472 0.384302860      0.384302860
75     75 3.980502 [m^2]     7 0.22197292 0.286970985      0.286970985
76     76 3.980502 [m^2]     6 0.22511929 0.284473443      0.284473443
77     77 3.980502 [m^2]     7 0.24180670 0.321920226      0.321920226
78     78 3.980502 [m^2]     4 0.29148779 0.244554596      0.244554596
79     79 3.980501 [m^2]     0 0.00000000 0.000000000               NA
80     80 3.980501 [m^2]     2 0.18936494 0.074862707      0.074862707
#Salvar nova tabela Excel 
write.csv(potato_plot_level_complete, "Experimento Batata - parcelas info.csv",
          row.names = F)
citation("FIELDimageR")
The following are references to the package FIELDimageR.  You should
also reference the individual methods used, as detailed in the
reference section of the help files for each function.

  Matias FI, Caraza-Harter MV, Endelman JB (2020). "FIELDimageR: An R
  package to analyze orthomosaic images from agricultural field
  trials." _The Plant Phenome J._, 1-6.
  <https://doi.org/10.1002/ppj2.20005>.

  Matias FI, Caraza-Harter MV, Endelman JB (2020). _FIELDimageR: An R
  package to analyze orthomosaic images from agricultural field
  trials_. R package version 0.6.2,
  <https://doi.org/10.1002/ppj2.20005>.

To get Bibtex entries use: x<-citation("FIELDimageR"); toBibtex(x)

To see these entries in BibTeX format, use 'print(<citation>,
bibtex=TRUE)', 'toBibtex(.)', or set
'options(citation.bibtex.max=999)'.