#LGN0313 - Melhoramento Genético 2025
#Experimento Batata Inglesa 29 dias após o plantio (DAP)
#João Paulo Silva Pavan
#joaosilvapavan@usp.br
Análise de ortomosaico, contagem do estande e área do dossel do experimento de batata no software RStudio com o pacote FIELDimageR
#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
=read.xlsx("C://Users//joaop//Desktop//LGN313//PotatoTrial//gen_potato_trial.xlsx")
croqui # 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
= transform(croqui,
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
= rast(fieldCrop("C://Users//joaop//Desktop//LGN313//PotatoTrial//Orthomosaic_PotatoTrial_15m_08_04_25.tif")) Potato_trial
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
= fieldMap(fieldPlot = croqui$Plot, fieldColumn = croqui$Col,
map_potato fieldRow = croqui$Row, decreasing = F)
#Código para aplicação de índices vegetativos no ortomosaico
= fieldIndex(mosaic = Potato_trial, Red = 1, Green = 2, Blue = 3,
potatoindex 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
= fieldMask(mosaic = Potato_trial, Red = 1, Green = 2,
potato_HUE Blue = 3, index = "HUE", cropValue =1.4, cropAbove = T)
[1] "4 layers available"
#Criar o shapefile (~ camadas) das parcelas
= fieldShape_render(mosaic = Potato_trial, ncols = 20,nrows = 4, fieldData = croqui, fieldMap = map_potato, PlotID = "Plot",buffer = -0.02) shape_potato
[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
= st_read("C://Users//joaop//Documents//FIELDimageR.Extra//shape_potato.shp") shape_potato
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
= fieldView(mosaic = Potato_trial, fieldShape = shape_potato,
fv1 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
= fieldView(mosaic = potato_HUE$mask, fieldShape = shape_potato,
fv2 type = 2, alpha = 0.2)
[1] "Starting analysis ..."
[1] "End!"
fv2
#Remover solo
= fieldMask(mosaic = Potato_trial,
potato_remsoil 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
= fieldCount(mosaic = potato_HUE$mask,
potatocount fieldShape = shape_potato,
plot = T,
col = "blue")
#Novo shapefile com objetos (plantas). Dados a nível de parcela (plots)
$plot_level potatocount
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
= fieldView(mosaic = potato_remsoil$newMosaic,
fv3 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
$object_level potatocount
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
= fieldView(mosaic = potato_remsoil$newMosaic,
fv4 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
= fieldCount(mosaic = potato_remsoil$mask,
potatocount3 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
$object_level potatocount3
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,...
= fieldView(mosaic = potato_remsoil$newMosaic,
fv5 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
= potatocount3$object_level %>%
potatofinalcount ::filter(perimeter>0.35 & perimeter<4)
dplyr#Visualização do mapa
= mapview(list(shape_potato, potatofinalcount))
mv1 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:
= c(1592, 1353, 1349, 1480, 563)
removeID = potatofinalcount %>%
potatofinalcount2 ::filter(!ID %in% removeID)
dplyr
#Visualização do mapa após a remoção dos objetos 1592, 1353, 1349, 1480, 563
= mapview(list(shape_potato, potatofinalcount2))
mv2 mv2
#Visualizar resultado em conjunto com o mapa original Potato_trial
= fieldView(Potato_trial) v1
[1] "Starting analysis ..."
[1] "End!"
= mapview(list(shape_potato, potatofinalcount2))
v2 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)
= st_transform(potatofinalcount2, st_crs(shape_potato))
potatofinalcount2transf
= shape_potato %>%
plot_area mutate(plot_area = st_area(.)) %>%
st_drop_geometry() %>%
select(PlotID, plot_area)
= st_intersection(potatofinalcount2, shape_potato) intersected
Warning: attribute variables are assumed to be spatially constant throughout
all geometries
= intersected %>%
potato_summary 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()
= plot_area %>%
potato_plot_level_complete 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)'.