Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Universidad Tecnológica de Panamá Centro de Investigaciones Hidráulicas e Hidrotécnicas Estimación de las distribuciones del tamaño de part́ıcula del suelo a partir de mediciones de hidrómetro José Ulises Jiménez, MSc. Alexandra González Lunes 11 de mayo de 2020 Resumen Se presenta el uso de la función texture() del paquete R envalysis 0.4 (Steinmetz 2020). La función texture() facilita la estimación de las distribuciones del tamaño de part́ıcula del suelo a partir de mediciones provenientes de ensayos mediante el método del hidrómetro (D422-63 2007). Esta obra está sujeta a la Licencia Reconocimiento- Compartir Igual 3.0 España de Creative Commons. Jiménez y González, 2020 Índice 1. Introducción 3 1.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Método del hidrómetro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Paquete envalysis 5 3. Análisis de datos 6 3.1. Base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.2. Las salidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4. Clasificar datos de textura de suelo: USDA 12 4.1. Obtener la clase de suelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 4.2. Obtener el triángulo de textura . . . . . . . . . . . . . . . . . . . . . . . . . 14 5. Trabajando con el código 15 6. Acerca de R 18 6.1. Créditos y Licencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Índice de figuras 1. Método del hidrómetro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Distribución del tamaño de part́ıculas finas. . . . . . . . . . . . . . . . . . . 10 3. Triángulo de textura de suelo. . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4. Distribución del tamaño de part́ıculas finas. . . . . . . . . . . . . . . . . . . 17 2 de 33 Jiménez y González, 2020 1. Introducción El presente texto trata sobre el análisis de datos provenientes de ensayos de suelo por el método del hidrómetro para determinar las texturas con respecto a la clasificación USDA. Un primer aspecto del análisis de datos granulométricos de suelo usando herramientas in- formáticas creadas en R se presentó en el documento Funciones de R para graficar, clasificar y explorar los datos de textura del suelo (Jiménez 2019). Alĺı se explicó el uso del paquete de R soiltexture (Moeys 2018). El motivo de realizar estos materiales educativos, es el de dar mayor visibilidad a las técnicas informáticas libres y gratuitas que son útiles en las tareas que realizan nuestros estudiantes, técnicos, docentes e investigadores en ingenieŕıa. Vamos a comenzar puntualizando que generalmente un suelo consiste en part́ıculas, agua y aire (Verruijt 2017). El contenido de agua y aire es una condición que cambia fácilmente; los suelos pueden estar perfectamente secos (sin contenido de agua) o completamente saturados (sin contenido de aire) o parcialmente saturados (con aire y agua presentes). Por otro lado, la distribución del tamaño de part́ıculas en principio no cambia en un punto dado; mientras que si puede variar considerablemente de un punto a otro (Scott 2013). A la distribución del tamaño de part́ıculas y el porcentaje en que se encuentran en un suelo se conoce como textura; y es uno de los parámetros más importantes dentro de la f́ısica de suelo en ámbitos agronómicos e ingenieriles (González, Coronado y Acosta 2007). Esta propiedad es relacionada directa e indirectamente con la distribución de los poros, de aqúı, que la misma puede también relacionarse con la aireación, la retención de humedad, la retención de nutrientes, la erosionabilidad, entre otras (Gisbert Blanquer, Ibañez Asensio y Moreno Ramón 2010). Dicho lo anterior, la textura de suelo puede tomarse como un indicador para evaluar de la calidad de este recurso (Bautista-Cruz y col. 2004). El análisis del tamaño de part́ıculas es ampliamente utilizado en la clasificación de suelos. Los datos obtenidos de las curvas de distribución del tamaño de part́ıculas se utilizan para determinar la idoneidad del suelo para la construcción de carreteras, edificaciones, etc (Mo- rales González 2018) y en el ámbito agŕıcola, para el manejo y planificación del uso de suelo, y el mejoramiento del rendimiento del cultivo (Villareal 2018). Los datos que se utilizan en este manual provienen de ensayos de suelo veŕıdicos realizados con el hidrómetro “ASTM Soil Hydrometer 152H”, dentro de las actividades del Proyecto IOMA 17-006, de la tesis “Modelación de infiltración y caracterización de textura de suelo en la subcuenca del Rı́o Estibaná”. 1.1. Objetivo Presentar un conjunto de herramientas informáticas libres y gratis para la estimación de las distribuciones del tamaño de part́ıcula del suelo a partir de mediciones de hidrómetro que pueden ser útiles para los trabajos que realizan estudiantes, técnicos, docentes e investigadores de la Universidad Tecnológica de Panamá. 3 de 33 Jiménez y González, 2020 1.2. Método del hidrómetro El método del hidrómetro se fundamenta en la determinación cuantitativa en porcentaje de la distribución del tamaño de las part́ıculas de las fracciones finas presentes en los suelos que pasan el tamiz N° 200, o sea, part́ıculas de arena muy fina (0.005 mm a 0.075 mm), limo (0.002 mm a 0.005 mm) y arcilla (menor a 0.002 mm) (Aguilar 2013). Figura 1. Método del hidrómetro. Este método se apoya en la Ley de Stokes, que se refiere a la fuerza de fricción experimentada por objetos esféricos moviéndose en el seno de un fluido viscoso en un régimen laminar de bajos números de Reynolds. En general, la ley de Stokes es válida en el movimiento de part́ıculas esféricas pequeñas moviéndose a velocidades bajas (González, Coronado y Acosta 2007). A continuación, se describe brevemente en que consiste el método del hidrómetro. El hidrómetro “ASTM Soil Hydrometer 152H” es un instrumento que se utiliza para medir la densidad relativa de los ĺıquidos; el mismo, está construido de vidrio y consiste en un cilindro hueco con un bulbo pesado. En uno de sus extremos está graduado en unidades de densidad g L−1 de −0.5 a 60 con base en la escala de Bouyoucos y su función es hacer que flote verticalmente el bulbo (Bouyoucos 1927). El análisis granulométrico por el método del hidrómetro comienza con la preparación de las muestras. Primero, se secan las muestras de suelo por 24 horas a 110 °C. Luego, con la ayuda de un mortero y pilón, se golpea suavemente el suelo para eliminar los terrones. Después, se pasa por el tamiz N° 200, hasta alcanzar 50 g de cada muestra (Aguilar 2013). Se prepara una solución de Hexametafosfato de Sodio al 4 % (se disuelven 50 g (NaPO 3)6 en 1250 mL de agua destilada). La solución preparada alcanza para el ensayo de 10 muestras de suelo de 50 g. A cada muestra tamizada se le añade una solución de (NaPO 3)6 al 4 % como dispersante qúımico y se dejan reposar por un peŕıodo de 24 horas (Maldonado Paucar 2016). Después, las muestras se colocan en un recipiente con agitador mecánico por un 1 minuto. El contenido mezclado se coloca en una probeta y se le agrega agua destilada hasta aforar 1000 mL (Aguilar 2013). Tapando con la mano la abertura de la probeta, se agita la solución volteando el cilindro al revés 30 veces durante 1 minuto, hasta alcanzar una mezcla uniforme, y justamente al 4 de 33 Jiménez y González, 2020 terminar de agitar, se pone en marcha el cronómetro al introducir suavemente el hidrómetro en la muestra en suspensión(Aguilar 2013). El cilindro de sedimentación debe colocarse en una mesa donde pueda permanecer tranquilo durante las mediciones (D422-63 2007). Se toman las lecturas de densidad para cada intervalo establecido (2, 5, 15, 30, 60, 120, 240 y 360 minutos) (D422-63 2007). En cualquier caso, se debe registrarse el tiempo exacto de lectura. Tras cada lectura, elhidrómetro se retira y coloca en una probeta con agua destilada para evitar que el material en suspensión se adhiriera al bulbo. Los hidrómetros están graduados para ser léıdos en la parte inferior del menisco. Sin embargo, en suspensiones de suelo opacas, las lecturas deben tomarse en la parte superior del menisco (D422-63 2007). La siguiente tabla puede servir como plantilla de muestra para registrar los datos. Tabla 1. Plantilla de muestra para registrar los datos sample time temperature reading blank P05 0.6 30 25 2 P05 2 30 22 2 P05 4 30 20 2 P05 15 30 15 2 P05 30 30 13 2 P05 60 30 11 2 P05 240 30 7 2 P05 1440 30 5 2 P09 0.6 30 30 2 P09 2 30 27 2 P09 4 30 25 2 P09 ... ... ... ... 2. Paquete envalysis Steinmetz (2020) creó el paquete envalysis el cual es de libre uso y solamente requiere de atribuir el reconocimiento merecido al autor. Dentro de este paquete se encuentra la función texture() la cual calcula la distribución del tamaño de part́ıcula y las clases de textura DIN y USDA a partir de una serie de lecturas de hidrómetro de acuerdo con el Análisis de textura del suelo ASTM D422-63. El algoritmo para el cálculo de la distrubución del tamaño de part́ıculas a partir de lec- turas registradas del hidrómetro implementado por Steinmetz (2020) sigue y cumple con las definiciones dadas por las directrices establecidas en la gúıa ASTM respectiva (D422-63 2007) y Bouyoucos (1927). El código con todos los cálculos se puede consultar en https: //github.com/zsteinmetz/envalysis/blob/master/R/texture.R. 5 de 33 https://github.com/zsteinmetz/envalysis/blob/master/R/texture.R https://github.com/zsteinmetz/envalysis/blob/master/R/texture.R Jiménez y González, 2020 3. Análisis de datos En este apartado exponemos los pasos para usar el paquete envalysis para analizar los datos del hidrómetro. Por conveniencia usamos RStudio (RStudio Team 2015), pero puede usar R GUI (Interface gráfica de usuario, GUI por sus siglas en inglés) (R Core Team 2020). Si ya tienes instalado R y Rstudios, pues empecemos. Si todav́ıa no lo ha hecho le recomiendo revisar como instalar la última versión de estos programas. Bien, instalaremos el paquete envalysis. Puede copiar y correr el siguiente comando en la consola o puede usar el menú de RStudio. Seleccione la pestaña Packages, hace click en Install, se abre una ventana, escribe envalysis y hace click en Install. # instalamos el paquete install.packages("envalysis", dependencies = TRUE) Una vez instalado el paquete, lo llamamos con la función library(). Pero, primero ajustamos cual va a ser nuestra carpeta de trabajo con la función setwd(), la ruta a la carpeta va entre comillas. Seguido, podemos verificar cual es la carpeta de trabajo con con la función getwd(). setwd("C:/RSuelo/Rhydrometer") getwd() ## [1] "C:/RSuelo/Rhydrometer" library(envalysis) ls("package:envalysis") ## [1] "bisdom" "calibration" "CI" "clayloam" ## [5] "din32645" "icp" "lod" "loq" ## [9] "mselect" "neitzel2003" "rmse" "se" ## [13] "signifig" "sorption" "texture" "theme_publish" Con la función ls() obtenemos un vector con los nombres de las funciones y datos dentro del paquete envalysis. Aqúı, clayloam es una base de datos que muestra el formato en que tenemos que presentar nuestros propios datos; y texture() es la función para el análisis de esos datos. Vemos que clayloam esta en la posición 4 y la función texture() está en la posición 15. Llamamos los datos clayloam con la función data() y la mostramos con la función print(). Con la función View(clayloam) se abre una pestaña en el cuadrante superior a su izquierda en RStudio que muestra los datos. Adicionalmente, mostramos los nombres de las variables usando la función names(). data(clayloam) print(clayloam) ## time temperature reading blank ## 1 0.66 23 39 2 ## 2 2.00 23 33 2 ## 3 5.00 23 29 2 ## 4 15.00 23 23 2 6 de 33 Jiménez y González, 2020 ## 5 30.00 23 22 2 ## 6 60.00 23 20 2 ## 7 180.00 23 18 2 names(clayloam) ## [1] "time" "temperature" "reading" "blank" En la función texture, los argumentos son: texture(reading, blank, time, temperature, data, conc = 50, Gs = 2.65, hydrometer = "auto", model = "auto", plot = F, ... ) a) reading: (lectura) es un vector numérico de valores de datos que proporciona las lecturas del hidrómetro en la parte inferior del menisco. b) data: (base de datos) los datos contienen las variables en la fórmula: reading ~ blank + time + temperature. c) blank: (blanco) es un vector numérico que contiene las lecturas en blanco tomadas en 5 g L−1 solución de Hexametafosfato de Sodio (corrección compuesta). d) time: (tiempo) es un vector numérico que contiene el tiempo transcurrido desde el comienzo de la medición en minutos. e) temperature: (temperatura) es un vector entero que contiene la temperatura medida. f ) conc: es la concentración de la solución del suelo, el valor predeterminado es 50 g L−1 como se propone en la directriz ASTM. g) Gs: es la gravedad espećıfica de la suspensión. h) hydrometer: (hidrómetro) es una cadena de caracteres que especifica el hidrómetro uti- lizado; los valores aceptados son "auto" para detección automática (predeterminado), "151H" y "152H". i) model: (modelo) la cadena se pasa a drm (Una función de ajuste del modelo general para el análisis de los datos de concentración/ dosis/ efecto temporal /respuesta.), "auto" elige el mejor modelo de ajuste automáticamente. j ) plot: (gráfica) es un valor lógico, si es FALSE no se grafica (predeterminado), si es TRUE, se grafica la distribución del tamaño de part́ıcula. 3.1. Base de datos Como ya conocemos la forma que debe tener la base de datos del hidrómetro para el análisis granulométrico, podemos crear nuestra propia base de dato. La base de datos la creamos en Excel con las variables: sample, time, temperature, reading y blank. El archivo se guarda en .csv. Llamamos la base de dato con la función read.csv() y creamos un objeto con un nombre arbitrario (datos df). Especifique la ruta de donde se encuentre su base de datos junto con el nombre y extensión, si es que no se encuentra en la carpeta de trabajo, esto va entre 7 de 33 Jiménez y González, 2020 comillas. Preste atención a los demás argumentos dentro de la función read.csv(), como header (encabezado de columnas) y sep (śımbolo que separa las columnas). datos_df <- read.csv("data_hydrometer.csv", header = TRUE, sep = ";") Revisamos los datos con las funciones str(), head() y tail(). Debe aparecer datos df en el Global Environment de RStudio como un objeto tipo data.frame, con 5 variables y 120 observaciones. str(datos_df) ## 'data.frame': 120 obs. of 5 variables: ## $ sample : chr "P05" "P05" "P05" "P05" ... ## $ time : num 0.6 2 4 15 30 60 240 1440 0.6 2 ... ## $ temperature: int 30 30 30 30 30 30 30 30 30 30 ... ## $ reading : int 25 22 20 15 13 11 7 5 30 27 ... ## $ blank : int 2 2 2 2 2 2 2 2 2 2 ... head(datos_df) ## sample time temperature reading blank ## 1 P05 0.6 30 25 2 ## 2 P05 2.0 30 22 2 ## 3 P05 4.0 30 20 2 ## 4 P05 15.0 30 15 2 ## 5 P05 30.0 30 13 2 ## 6 P05 60.0 30 11 2 tail(datos_df) ## sample time temperature reading blank ## 115 P53 4 30 23 2 ## 116 P53 15 30 20 2 ## 117 P53 30 30 17 2 ## 118 P53 60 30 14 2 ## 119 P53 240 30 10 2 ## 120 P53 1440 30 6 2 3.2. Las salidas La función texture() de envalysis devuelve un objeto de la clase "texture". Un objeto de la clase "texture" es una lista que contiene los siguientes componentes: � meta: metadatos. � distribution: datos que proporciona la distribución del tamaño de part́ıcula. � model: información del modelo sobre el modelo drm ajustado � din: principales clases de textura DIN. � usda: principales clases de textura del USDA. 8 de 33 Jiménez y González, 2020 Extraemos de datos df, los datos de la muestra "P05" con la función subset() y los nom- bramos ejemplo df. ejemplo_df <- subset(datos_df, datos_df$sample=="P05") Corremos la funcióntexture para la data ejemplo df y regresa la salida del análisis en la consola. texture(reading ~ blank + time + temperature, ejemplo_df) ## Soil particle estimation according to ASTM D422-63 ## Hydrometer model: 152H ## Specific gravity (Gs) = 2.65 Soil extract: 50 g/L ## ## Particle size distribution: ## Particle size Percent passing ## 0.05420 0.536 ## 0.03029 0.476 ## 0.02170 0.436 ## 0.01156 0.336 ## 0.00827 0.296 ## 0.00592 0.256 ## 0.00303 0.176 ## 0.00125 0.136 ## ## Fitted with Weibull (type 1) (W1.4) ## ## Soil texture classes (DIN 4022): ## Clay Silt Sand ## Estimate 0.15114 0.40024 0.44861 ## Std. Error 0.00369 0.00918 0.00549 ## ## Soil texture classes (USDA): ## Clay Silt Sand ## Estimate 0.15114 0.37847 0.47039 ## Std. Error 0.00369 0.00793 0.00423 Puede crear un objeto nombrando la salida. Por ejemplo: soil_P05 <- texture(reading ~ blank + time + temperature, ejemplo_df) Cuando se realiza el análisis del hidrómetro, se debe hacer un gráfico de los resultados de la prueba, trazando los diámetros de las part́ıculas en una escala logaŕıtmica como la abscisa y los porcentajes más pequeños que los diámetros correspondientes a una escala aritmética como la ordenada. La función texture() también lo hace introduciendo el argumento plot=TRUE. soil_P05 <- texture(reading ~ blank + time + temperature, ejemplo_df, plot=TRUE) 9 de 33 Jiménez y González, 2020 particle.size pe rc .p as si ng 0.01 0.2 0.3 0.4 0.5 Figura 2. Distribución del tamaño de part́ıculas finas. También, se puede aplicar la función a todas las muestras a la vez. Para esto hay que instalar el paquete purrr (Henry y Wickham 2020). Del paquete purrr utilizaremos las funciones map() y map_dfr(). La función u operador %>% indica que el resultado de la instrucción anterior se usa para la instrucción que sigue a continuación. La función split() divide el data.frame datos df por la identificación de la muestra (sample) en pequeños data.frame. Luego, map() aplica la función a cada uno de estos data.frame y la salida se presenta en la consola. Por motivos de espacio hemos colocado la salida en el Anexo A. library(purrr) datos_df %>% split(.$sample) %>% map(~ texture(reading ~ blank + time + temperature, data = .x)) La salida se puede guardar en un archivo .txt usando a la función sink(). Observe que se usa dos veces, en la primera se nombra el archivo sin olvidar la extensión, colocando todo entre comillas; y la segunda es de cierre de la instrucción. El documento aparecerá en la carpeta de trabajo. # Para guardar todas las salidas sink("soiltest1.txt") datos_df %>% split(.$sample) %>% 10 de 33 Jiménez y González, 2020 map(~ texture(reading ~ blank + time + temperature, data = .x)) sink() Para guardar los resultados, especificamente el de porcentajes de arena, limo y arcilla de la clasificación USDA podemos ejecutar las siguientes instruciones. datos_df %>% split(.$sample) %>% map(~ texture(reading ~ blank + time + temperature, data = .x)) %>% map_dfr(~ as.data.frame(t(as.matrix(round(.x[[5]][1,1:3],4)*100)))) ## Clay Silt Sand ## 1 15.11 37.85 47.04 ## 2 26.11 37.00 36.89 ## 3 39.56 42.97 17.47 ## 4 7.32 28.31 64.37 ## 5 28.09 38.85 33.06 ## 6 17.15 44.32 38.53 ## 7 21.82 29.37 48.81 ## 8 25.04 27.86 47.10 ## 9 22.07 33.66 44.28 ## 10 34.38 30.46 35.16 ## 11 15.07 34.40 50.52 ## 12 23.32 42.11 34.57 ## 13 11.90 25.30 62.80 ## 14 37.06 32.51 30.43 ## 15 18.94 39.87 41.19 Para guardar la salida en un documento .txt usamos la función sink(). sink("soiltest2.txt") datos_df %>% split(.$sample) %>% map(~ texture(reading ~ blank + time + temperature, data = .x)) %>% map_dfr(~ as.data.frame(t(as.matrix(round(.x[[5]][1,1:3],4)*100)))) sink() Para guardar los gráficos de distribución de part́ıculas. pdf("graphics.pdf", paper = "letter") par(mfrow = c(2, 2)) datos_df %>% split(.$sample) %>% map(~ texture(reading ~ blank + time + temperature, data = .x, plot=TRUE)) dev.off() 11 de 33 Jiménez y González, 2020 4. Clasificar datos de textura de suelo: USDA 4.1. Obtener la clase de suelo Ahora queremos obtener las clases de textura de suelo según la clasificación USDA a partir de una base de datos con los porcentajes de arena, limo y arcilla. Primero, obtendremos la clase de suelo para un objeto lista tipo +texture, como el que guardamos con el nombre soil_P05. Tenemos que preparar los datos y convertirlos en un objeto tipo data.frame. Ubicamos y mostramos la ĺınea de dato que necesitamos de la lista. soil_P05[["usda"]]["Estimate",c("Clay", "Silt", "Sand")] ## Clay Silt Sand ## 0.1511441 0.3784704 0.4703854 o lo que es lo mismo, usar las posiciones: soil_P05[[5]][1,1:3] ## Clay Silt Sand ## 0.1511441 0.3784704 0.4703854 Usaremos una función del paquete soiltexture que nos devuelve la clase de suelo como una abreviatura en inglés y también, una función creada que nos develve el nombre completo en español. Ambas funciones necesitan que los nombres de las variables esten en mayúscula (CLAY, SILT, SAND) y los datos en porcentaje. Cada uno de los valores (en proporción decimal) se multiplica por 100, se transpone con t() y se convierte en un objeto tipo data.frame con la función data.frame(). El objeto lo creamos con un nombre arbitrario, P05.tipo.suelo. Luego, cambiamos los nombres de la variables a mayúsculas cerradas. P05.tipo.usda <- data.frame(t(soil_P05$usda["Estimate",] * 100)) names(P05.tipo.usda) <- toupper(names(P05.tipo.usda)) Ahora, para obtener la clase de suelo según USDA llamamos el paquete soiltexture y usamos la función TT.points.in.classes() y los argumentos son tres: el nombre del objeto con los datos, el sistema de clasificación y el tipo de salida. Más información sobre esta función la pueden encontrar en Moeys (2018). library(soiltexture) TT.points.in.classes(P05.tipo.usda, class.sys = "USDA.TT", PiC.type = "t") ## [1] "Lo" Este código está escrito en Jiménez (2019). Se guardó como un archivo verb+.Rdata+ y lo utilizamos aca. Llamamos el archivo con la función attach(). El archivo se llama clasessuelo.Rdata y tiene una única función, clase.textura(). attach("clasessuelo.Rdata") clases.textura(P05.tipo.usda) ## [1] "Franco" 12 de 33 Jiménez y González, 2020 Ahora, usaremos nuestro resultado con los datos de arena, limo y arcilla para las 15 muetras. Ese resultado se guardó como un archico .txt. con el nombre soiltest2. Lo llamamos con la función read.table(). test2.tipo.usda <- read.table(file = "soiltest2.txt", header=TRUE) Incluimos una variable con la etiqueta de la muestra. test2.tipo.usda$sample <- unique(datos_df$sample) Cambiamos sus nombres de variables a mayúsculas cerradas. names(test2.tipo.usda) <- toupper(names(test2.tipo.usda)) Aplicamos la función TT.points.in.classes() tex2.soil.usda <- TT.points.in.classes(test2.tipo.usda, class.sys = "USDA.TT", PiC.type = "t") print(tex2.soil.usda) ## [1] "Lo" "Lo" "SiClLo" "SaLo" "ClLo" "Lo" "Lo" "Lo" ## [9] "Lo" "ClLo" "Lo" "Lo" "SaLo" "ClLo" "Lo" El resultado es un vector de caracteres, de la misma longitud que el número de muestras de suelo, que contiene la abreviatura de la clase de textura a la que pertenece la muestra. En el caso de una muestra situada en el borde de dos clases, se devuelven las abreviaturas de las clases concatenadas (separadas por una coma). Para usar la función clase.textura() para cada ĺınea del data.frame, tenemos que usar las funciones sapply() y split(), de la siguiente forma: tex2.suelo.usda <- sapply(split(test2.tipo.usda, test2.tipo.usda$SAMPLE), FUN = clases.textura) print(tex2.suelo.usda) ## P05 P09 ## "Franco" "Franco" ## P15 P16 ## "Franco limoso arcilloso" "Franco arenoso" ## P21 P24 ## "Franco arcilloso" "Franco" ## P25 P36 ## "Franco" "Franco arenoso arcilloso" ## P37 P39 ## "Franco" "Franco arcilloso" ## P46 P49 ## "Franco" "Franco" ## P50 P51 ## "Franco arenoso" "Franco arcilloso" ## P53 ## "Franco" 13 de 33Jiménez y González, 2020 El resultado es un vector de caracteres, de la misma longitud que el número de muestras de suelo, que contiene el nombre en español de la clase de textura a la que pertenece la muestra. Por último, unimos los dos vectores de caracteres en un data.frame. TEX.USDA <- data.frame(t(rbind(tex2.soil.usda, tex2.suelo.usda))) print(TEX.USDA) ## tex2.soil.usda tex2.suelo.usda ## P05 Lo Franco ## P09 Lo Franco ## P15 SiClLo Franco limoso arcilloso ## P16 SaLo Franco arenoso ## P21 ClLo Franco arcilloso ## P24 Lo Franco ## P25 Lo Franco ## P36 Lo Franco arenoso arcilloso ## P37 Lo Franco ## P39 ClLo Franco arcilloso ## P46 Lo Franco ## P49 Lo Franco ## P50 SaLo Franco arenoso ## P51 ClLo Franco arcilloso ## P53 Lo Franco 4.2. Obtener el triángulo de textura En este apartado graficamos los datos de test2.tipo.usda en un triángulo con la clasificación USDA. Le sugerimos revisar Moeys (2018) que explica el uso del paquete soiltexture. Las funciones y argumentos que se utilizan a continuación ya han sido presentados en el manual Funciones de R para graficar, clasificar y explorar los datos de textura del suelo (Jiménez 2019). geo <- TT.plot( class.sys = "USDA.TT", tri.data = test2.tipo.usda, lang = "es2", grid.show = FALSE, class.p.bg.col = c("aquamarine", "aquamarine2", "aquamarine3", "cornsilk", "burlywood1", "burlywood3", "darkseagreen1", "darkseagreen3", "darkolivegreen1", "darkolivegreen2", "deepskyblue", "deepskyblue4"), lwd.axis = 2, class.line.col = "black", class.lab.col = "black", pch = 19, cex.lab = 1, cex.axis = 1, cex = 0.4, fg = "red") 14 de 33 Jiménez y González, 2020 TT.text(tri.data = test2.tipo.usda, geo = geo, labels = test2.tipo.usda$SAMPLE, cex = 0.8, col = "grey20", pos = 3) Se utiliza la función TT.plot para construir el gráfico y en el argumento class.p.bg.col colocamos como opción un vector con los nombres de los colores de la misma longitud que el número de clases (12 clases, 12 colores). Figura 3. Triángulo de textura de suelo. 5. Trabajando con el código Se ha tomado el código original de la función texture() y se le realizaron pequeñ́ısimos cambios para adaptarlo a las necesidades propias, espećıficamente el cambio de idioma en las etiquetas de salida. El código modificado y los datos que se utilizan en los cálculos se guardaron en un archivo .RDATA. En un fichero se copió el código original y se tradujo al español todos los caracteres o etiquetas asociados a la función cat(). Una vez hecho esto, se ejecuta en la consola y se crean en el Global Environment los objetos correspondientes a la función. Adicionalmente, se copiaron dos objetos que se usan en los calculos: "d422_ct" (Valores del factor de corrección, alfa, para diferentes gravedades espećıficas de part́ıculas del suelo) y "d422_k" (Valores de K para 15 de 33 Triángulo de textura: USDA ClCl SiClSiCl SaClSaCl P39ClClLoLo SiClLoSiClLo SaClLoSaClLo PLL SiLoSiLoSS SiSiSaSaLoSaLoSa 102030405060708090 10 20 30 40 50 60 70 80 90 10 20 30 40 50 60 70 80 90 [%] Arena 50−2000 µm [% ] A rc illa 0 −2 µ m [% ] Lim o 2−50 µm 46P05 P P15 aLoaLoP16 09P21 53ooP24 P2 P36 5P37 P P49 P50 P51 Jiménez y González, 2020 usar en la ecuación para calcular el diámetro de part́ıcula en el análisis del hidrómetro). A continuación se muestra su uso: load("hidrometro.RData") library(drc) Se requiere el paquete drc (Ritz y col. 2015); ya que verb+texture()+ realiza análisis de regresión logisticaverb+texture()+, primero con la función de log-loǵıstica de dos parámetros, LL.2(); y luego, compara con otras funciones (en total 20) y escoge la de mejor ajuste. La curva con mejor ajuste es trazada en la salida gráfica. La función ls() muestra un vertor con los nombres de los objetos creados en el Global Environment, en este caso los que forman la función texture() de código modificado guardado como hidrometro.RDATA. ls() ## [1] "d422_ct" "d422_k" "plot.texture" ## [4] "print.texture" "texture" "texture.default" ## [7] "texture.formula" Lllamamos los datos nuevamente, y tomamos la muestra ”P05” otra vez para el ejemplo. datos_df <- read.csv("data_hydrometer.csv", header = TRUE, sep = ";") ejemplo_df <- subset(datos_df, datos_df$sample=="P05") Corremos texture(). texture(reading ~ blank + time + temperature, ejemplo_df) ## Estimación del tama~no de partı́cula de acuerdo a ASTM D422-63 ## Modelo de Hidrómetro: 152H ## Gravedad especı́fica (Gs) = 2.65 Extracto de suelo: 50 g/L ## ## Distribución del tama~no de partı́cula: ## Tama~no de partı́cula Porcentaje que pasa ## 0.05420 0.536 ## 0.03029 0.476 ## 0.02170 0.436 ## 0.01156 0.336 ## 0.00827 0.296 ## 0.00592 0.256 ## 0.00303 0.176 ## 0.00125 0.136 ## ## Ajustada con Weibull (type 1) (W1.4) ## ## Clase de textura de suelo (USDA): ## Arcilla Limo Arena ## Estimación 0.15114 0.37847 0.47039 16 de 33 Jiménez y González, 2020 ## Error estándar 0.00369 0.00793 0.00423 Graficamos. texture(reading ~ blank + time + temperature, ejemplo_df, plot = TRUE) abline(h=c(0.2,0.3,0.4,0.5), v= c(0.001, 0.01,0.1) , col="grey", lty = 2) Figura 4. Distribución del tamaño de part́ıculas finas. 17 de 33 Curva granulométrica 0.01 Tamaño.partícula P or ce nt aj e. qu e. pa sa 0.001 0.1 0.2 0.3 0.4 0.5 Jiménez y González, 2020 6. Acerca de R R es un conjunto integrado de funciones de software para manipulación de datos, cálculo y visualización gráfica. Este documento trata sobre funciones (y paquetes) escritas en R “lenguaje y entorno para la informática estad́ıstica”1, y se ha generado con R version 4.0.0 (2020-04-24) (R Core Team 2020). 6.1. Créditos y Licencia Este documento y los códigos fueron escritos en Sweave2, R3 y LATEX4 (The LaTeX3 project 2006). Esta obra está bajo una licencia de Creative Commons Reconocimiento - Compartir igual 3.05. En resumen, esto significa que Usted es libre de: 1. Compartir: copiar, distribuir y transmitir la obra; 2. Editar: adaptar el trabajo al contexto requerido. En las siguientes condiciones: 1. Atribución: debe atribuir el trabajo de la manera especificada por el autor o licenciante (pero no de ninguna manera que sugiera que le respalden o su uso de la obra); 2. Compartir por igual: si modifica, transforma o se basa en este trabajo, puede distribuir el trabajo resultante solo bajo una licencia igual, similar o compatible. Dado que este tipo de licencia es altamente permisiva, este documento se proporciona sin responsabilidades, ni garant́ıas. 1http://www.r-project.org/ 2La función Sweave de R proporciona un marco flexible para mezclar texto y código R para la generación automática de documentos. 3R es un entorno y lenguaje de programación con un enfoque al análisis estad́ıstico. 4LATEXes un sistema de preparación de documentos para composición de texto de alta calidad 5Reconocimiento - Compartir igual (by-sa): se permite el uso comercial de la obra y de las posibles obras derivadas, siempre que su distribución se haga igual que la obra original. 18 de 33 http://www.r-project.org/ Jiménez y González, 2020 Referencias [1] Jairo Aguilar. ((Análisis granulométrico mediante el método del hidrómetro)). En: Mente & Materia 4.1 (2013), págs. 29-29. [2] A Bautista-Cruz y col. La calidad del suelo y sus indicadores. 2004. url: http://www. %20revistaecosistemas.%20net/articulo.%20asp. [3] George John Bouyoucos. ((The hydrometer as a new method for the mechanical analysis of soils)). En: Soil Science 23.5 (1927), págs. 343-354. [4] ASTM D422-63. ((Standard Test Method for Particle-Size Analysis of Soils (Technical standard))). En: ASTM International, West Conshohocken, PA (2007), pág. 8. url: http://www.astm.org/Standards/D422.htm. [5] Juan Manuel Gisbert Blanquer, Sara Ibañez Asensio y Héctor Moreno Ramón. ((La textura del suelo)). En: (2010). [6] Hanoi Medina González, Jorge Garćıa Coronado y Daniel Núñez Acosta.((El método del hidrómetro: base teórica para su empleo en la determinación de la distribución del tamaño de part́ıculas de suelo)). En: Revista Ciencias Técnicas Agropecuarias 16.3 (2007), págs. 19-24. [7] Lionel Henry y Hadley Wickham. purrr: Functional Programming Tools. R package version 0.3.4. 2020. url: https://CRAN.R-project.org/package=purrr. [8] José Ulises Jiménez. ((Funciones de R para graficar, clasificar y explorar los datos de textura del suelo)). En: (2019). [9] Alejandro David Maldonado Paucar. ((Evaluación de diferentes dosis de hexametafosfa- to de sodio (NaPO3) 6, en la determinación de tres tipos texturales de suelo, mediante el método de bouyoucos.)) B.S. thesis. Quito: UCE, 2016. [10] Julien Moeys. soiltexture: Functions for Soil Texture Plot, Classification and Transfor- mation. R package version 1.5.1. 2018. url: https://CRAN.R-project.org/package= soiltexture. [11] Diego Alejandro Morales González. ((Comparación entre el sistema pario y un procedi- miento tradicional para obtener la granulometŕıa en suelos finos)). En: (2018). [12] R Core Team. R: A Language and Environment for Statistical Computing. R Founda- tion for Statistical Computing. Vienna, Austria, 2020. url: https://www.R-project. org/. [13] C. Ritz y col. ((Dose-Response Analysis Using R)). En: PLOS ONE 10.e0146021 (12 2015). url: http : // journals . plos . org/plosone/article ? id=10 . 1371/ journal . pone . 0146021. [14] RStudio Team. RStudio: Integrated Development for R. RStudio, Inc. Boston, MA, 2015. url: http://www.rstudio.com/. [15] Charles Robin Scott. An introduction to soil mechanics and foundations. Springer, 2013. [16] Zacharias Steinmetz. envalysis: Miscellaneous Functions for Environmental Analyses. R package version 0.4. 2020. url: https://CRAN.R-project.org/package=envalysis. 19 de 33 http://www.%20revistaecosistemas.%20net/articulo.%20asp http://www.%20revistaecosistemas.%20net/articulo.%20asp http://www.astm.org/Standards/D422.htm https://CRAN.R-project.org/package=purrr https://CRAN.R-project.org/package=soiltexture https://CRAN.R-project.org/package=soiltexture https://www.R-project.org/ https://www.R-project.org/ http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0146021 http://journals.plos.org/plosone/article?id=10.1371/journal.pone.0146021 http://www.rstudio.com/ https://CRAN.R-project.org/package=envalysis Jiménez y González, 2020 [17] The LaTeX3 project. The LaTeX3 project. 2006. url: http://www.latex-project.org/. [18] Arnold Verruijt. An Introduction to Soil Mechanics. Vol. 30. Springer, 2017. [19] J. E. Villareal. Mapas de fertilidad como herramienta para zonificación de suelos en Panamá. 2018. 20 de 33 http://www.latex-project.org/ Jiménez y González, 2020 ANEXO A Salida de la estimación del tamaño de part́ıcula de acuerdo a ASTM D422-63, para la base de datos evaluada (total 15 muestras) 21 de 33 1 $P05 2 Soil particle estimation according to ASTM D422-63 3 Hydrometer model: 152H 4 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 5 6 Particle size distribution: 7 Particle size Percent passing 8 0.05420 0.536 9 0.03029 0.476 10 0.02170 0.436 11 0.01156 0.336 12 0.00827 0.296 13 0.00592 0.256 14 0.00303 0.176 15 0.00125 0.136 16 17 Fitted with Weibull (type 1) (W1.4) 18 19 Soil texture classes (DIN 4022): 20 Clay Silt Sand 21 Estimate 0.15114 0.40024 0.44861 22 Std. Error 0.00369 0.00918 0.00549 23 24 Soil texture classes (USDA): 25 Clay Silt Sand 26 Estimate 0.15114 0.37847 0.47039 27 Std. Error 0.00369 0.00793 0.00423 28 29 $P09 30 Soil particle estimation according to ASTM D422-63 31 Hydrometer model: 152H 32 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 33 34 Particle size distribution: 35 Particle size Percent passing 36 0.05230 0.636 37 0.02927 0.576 38 0.02099 0.536 39 0.01113 0.456 40 0.00792 0.436 41 0.00571 0.376 42 0.00293 0.296 43 0.00122 0.216 44 45 Fitted with Log-logistic (ED50 as parameter) with lower limit at 0 (LL.3) 46 47 Soil texture classes (DIN 4022): 48 Clay Silt Sand 49 Estimate 0.26115 0.3918 0.34708 50 Std. Error 0.00554 0.0143 0.00881 51 52 Soil texture classes (USDA): 53 Clay Silt Sand 54 Estimate 0.26115 0.3700 0.3689 55 Std. Error 0.00554 0.0124 0.0069 56 57 $P15 58 Soil particle estimation according to ASTM D422-63 59 Hydrometer model: 152H 60 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 61 62 Particle size distribution: 63 Particle size Percent passing 64 0.04869 0.816 65 0.02690 0.796 66 0.01949 0.736 67 0.01038 0.656 68 0.00745 0.616 69 0.00538 0.556 70 0.00280 0.436 71 0.00118 0.336 72 73 Fitted with Shifted Michaelis-Menten (MM.3) 74 75 Soil texture classes (DIN 4022): 76 Clay Silt Sand 77 Estimate 0.39561 0.4420 0.16240 78 Std. Error 0.00703 0.0164 0.00938 79 80 Soil texture classes (USDA): 81 Clay Silt Sand 82 Estimate 0.39561 0.4297 0.17472 83 Std. Error 0.00703 0.0155 0.00851 84 85 $P16 86 Soil particle estimation according to ASTM D422-63 87 Hydrometer model: 152H 88 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 89 90 Particle size distribution: 91 Particle size Percent passing 92 0.05746 0.356 93 0.03167 0.336 94 0.02279 0.276 95 0.01198 0.216 96 0.00861 0.156 97 0.00612 0.136 98 0.00309 0.096 99 0.00128 0.056 100 101 Fitted with Generalized log-logistic (ED50 as parameter) (LL.5) 102 103 Soil texture classes (DIN 4022): 104 Clay Silt Sand 105 Estimate 0.07316 0.2835 0.643 106 Std. Error 0.00809 0.0201 0.012 107 108 Soil texture classes (USDA): 109 Clay Silt Sand 110 Estimate 0.07316 0.2831 0.6437 111 Std. Error 0.00809 0.0197 0.0116 112 113 $P21 114 Soil particle estimation according to ASTM D422-63 115 Hydrometer model: 152H 116 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 117 118 Particle size distribution: 119 Particle size Percent passing 120 0.05152 0.676 121 0.02864 0.636 122 0.02070 0.576 123 0.01091 0.516124 0.00777 0.496 125 0.00564 0.416 126 0.00291 0.316 127 0.00122 0.236 128 129 Fitted with Shifted Michaelis-Menten (MM.3) 130 131 Soil texture classes (DIN 4022): 132 Clay Silt Sand 133 Estimate 0.2809 0.4008 0.3184 134 Std. Error 0.0107 0.0246 0.0139 135 136 Soil texture classes (USDA): 137 Clay Silt Sand 138 Estimate 0.2809 0.3885 0.3306 139 Std. Error 0.0107 0.0232 0.0125 140 141 $P24 142 Soil particle estimation according to ASTM D422-63 143 Hydrometer model: 152H 144 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 145 146 Particle size distribution: 147 Particle size Percent passing 148 0.05268 0.616 149 0.02927 0.576 150 0.02099 0.536 151 0.01113 0.456 152 0.00798 0.416 153 0.00575 0.356 154 0.00296 0.256 155 0.00127 0.076 156 157 Fitted with Log-logistic (ED50 as parameter) (LL.4) 158 159 Soil texture classes (DIN 4022): 160 Clay Silt Sand 161 Estimate 0.17151 0.460 0.36880 162 Std. Error 0.00496 0.012 0.00702 163 164 Soil texture classes (USDA): 165 Clay Silt Sand 166 Estimate 0.17151 0.4432 0.38532 167 Std. Error 0.00496 0.0106 0.00568 168 169 $P25 170 Soil particle estimation according to ASTM D422-63 171 Hydrometer model: 152H 172 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 173 174 Particle size distribution: 175 Particle size Percent passing 176 0.05457 0.516 177 0.03009 0.496 178 0.02128 0.496 179 0.01128 0.416 180 0.00808 0.376 181 0.00578 0.336 182 0.00296 0.256 183 0.00124 0.176 184 185 Fitted with Generalized log-logistic (ED50 as parameter) (LL.5) 186 187 Soil texture classes (DIN 4022): 188 Clay Silt Sand 189 Estimate 0.21820 0.2945 0.48733 190 Std. Error 0.00536 0.0136 0.00825 191 192 Soil texture classes (USDA): 193 Clay Silt Sand 194 Estimate 0.21820 0.2937 0.48812 195 Std. Error 0.00536 0.0126 0.00719 196 197 $P36 198 Soil particle estimation according to ASTM D422-63 199 Hydrometer model: 152H 200 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 201 202 Particle size distribution: 203 Particle size Percent passing 204 0.05420 0.536 205 0.03009 0.496 206 0.02142 0.476 207 0.01121 0.436 208 0.00808 0.376 209 0.00578 0.336 210 0.00294 0.276 211 0.00122 0.236 212 213 Fitted with Brain-Cousens (hormesis) (BC.5) 214 215 Soil texture classes (DIN 4022): 216 Clay Silt Sand 217 Estimate 0.25043 0.2956 0.454 218 Std. Error 0.00686 0.0199 0.013 219 220 Soil texture classes (USDA): 221 Clay Silt Sand 222 Estimate 0.25043 0.2786 0.47099 223 Std. Error 0.00686 0.0149 0.00801 224 225 $P37 226 Soil particle estimation according to ASTM D422-63 227 Hydrometer model: 152H 228 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 229 230 Particle size distribution: 231 Particle size Percent passing 232 0.05382 0.556 233 0.02969 0.536 234 0.02156 0.456 235 0.01142 0.376 236 0.00818 0.336 237 0.00582 0.316 238 0.00298 0.236 239 0.00123 0.196 240 241 Fitted with Generalized log-logistic (ED50 as parameter) (LL.5) 242 243 Soil texture classes (DIN 4022): 244 Clay Silt Sand 245 Estimate 0.22069 0.3367 0.4426 246 Std. Error 0.00927 0.0233 0.0141 247 248 Soil texture classes (USDA): 249 Clay Silt Sand 250 Estimate 0.22069 0.3366 0.4428 251 Std. Error 0.00927 0.0231 0.0138 252 253 $P39 254 Soil particle estimation according to ASTM D422-63 255 Hydrometer model: 152H 256 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 257 258 Particle size distribution: 259 Particle size Percent passing 260 0.05191 0.656 261 0.02907 0.596 262 0.02070 0.576 263 0.01091 0.516 264 0.00777 0.496 265 0.00560 0.436 266 0.00286 0.376 267 0.00119 0.296 268 269 Fitted with Weibull (type 1) with lower limit at 0 and upper limit at 1 (W1.2) 270 271 Soil texture classes (DIN 4022): 272 Clay Silt Sand 273 Estimate 0.34382 0.3224 0.33374 274 Std. Error 0.00465 0.0102 0.00555 275 276 Soil texture classes (USDA): 277 Clay Silt Sand 278 Estimate 0.34382 0.30458 0.35160 279 Std. Error 0.00465 0.00993 0.00528 280 281 $P46 282 Soil particle estimation according to ASTM D422-63 283 Hydrometer model: 152H 284 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 285 286 Particle size distribution: 287 Particle size Percent passing 288 0.05494 0.496 289 0.03029 0.476 290 0.02170 0.436 291 0.01142 0.376 292 0.00818 0.336 293 0.00592 0.256 294 0.00301 0.196 295 0.00126 0.116 296 297 Fitted with Weibull (type 2) with lower limit at 0 (W2.3) 298 299 Soil texture classes (DIN 4022): 300 Clay Silt Sand 301 Estimate 0.1507 0.3490 0.5002 302 Std. Error 0.0087 0.0205 0.0118 303 304 Soil texture classes (USDA): 305 Clay Silt Sand 306 Estimate 0.1507 0.3440 0.505 307 Std. Error 0.0087 0.0187 0.010 308 309 $P49 310 Soil particle estimation according to ASTM D422-63 311 Hydrometer model: 152H 312 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 313 314 Particle size distribution: 315Particle size Percent passing 316 0.05191 0.656 317 0.02886 0.616 318 0.02070 0.576 319 0.01106 0.476 320 0.00798 0.416 321 0.00575 0.356 322 0.00294 0.276 323 0.00123 0.196 324 325 Fitted with Weibull (type 2) (W2.4) 326 327 Soil texture classes (DIN 4022): 328 Clay Silt Sand 329 Estimate 0.23323 0.42723 0.33954 330 Std. Error 0.00262 0.00724 0.00461 331 332 Soil texture classes (USDA): 333 Clay Silt Sand 334 Estimate 0.23323 0.42109 0.3457 335 Std. Error 0.00262 0.00623 0.0036 336 337 $P50 338 Soil particle estimation according to ASTM D422-63 339 Hydrometer model: 152H 340 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 341 342 Particle size distribution: 343 Particle size Percent passing 344 0.05711 0.376 345 0.03147 0.356 346 0.02239 0.336 347 0.01177 0.276 348 0.00837 0.256 349 0.00602 0.196 350 0.00306 0.136 351 0.00126 0.116 352 353 Fitted with Weibull (type 1) (W1.4) 354 355 Soil texture classes (DIN 4022): 356 Clay Silt Sand 357 Estimate 0.1190 0.2586 0.62233 358 Std. Error 0.0059 0.0128 0.00691 359 360 Soil texture classes (USDA): 361 Clay Silt Sand 362 Estimate 0.1190 0.2530 0.62798 363 Std. Error 0.0059 0.0117 0.00583 364 365 $P51 366 Soil particle estimation according to ASTM D422-63 367 Hydrometer model: 152H 368 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 369 370 Particle size distribution: 371 Particle size Percent passing 372 0.05112 0.696 373 0.02843 0.656 374 0.02010 0.656 375 0.01061 0.596 376 0.00766 0.536 377 0.00549 0.496 378 0.00282 0.416 379 0.00119 0.316 380 381 Fitted with Shifted Michaelis-Menten (MM.3) 382 383 Soil texture classes (DIN 4022): 384 Clay Silt Sand 385 Estimate 0.37061 0.3333 0.29611 386 Std. Error 0.00669 0.0151 0.00838 387 388 Soil texture classes (USDA): 389 Clay Silt Sand 390 Estimate 0.37061 0.3251 0.30430 391 Std. Error 0.00669 0.0144 0.00768 392 393 $P53 394 Soil particle estimation according to ASTM D422-63 395 Hydrometer model: 152H 396 Specific gravity (Gs) = 2.65 Soil extract: 50 g/L 397 398 Particle size distribution: 399 Particle size Percent passing 400 0.05307 0.596 401 0.02969 0.536 402 0.02128 0.496 403 0.01121 0.436 404 0.00808 0.376 405 0.00582 0.316 406 0.00298 0.236 407 0.00124 0.156 408 409 Fitted with Brain-Cousens (hormesis) (BC.5) 410 411 Soil texture classes (DIN 4022): 412 Clay Silt Sand 413 Estimate 0.1894 0.4256 0.3850 414 Std. Error 0.0076 0.0221 0.0145 415 416 Soil texture classes (USDA): 417 Clay Silt Sand 418 Estimate 0.1894 0.3987 0.41186 419 Std. Error 0.0076 0.0161 0.00848 420 421 Jiménez y González, 2020 ANEXO B Salida gráfica de la distribución del tamaño de part́ıcula 29 de 33 Jiménez y González, 2020 30 de 33 particle.size pe rc .p as si ng 0.01 0.2 0.3 0.4 0.5 particle.size pe rc .p as si ng 0.01 0.2 0.3 0.4 0.5 0.6 particle.size pe rc .p as si ng 0.01 0.4 0.5 0.6 0.7 0.8 particle.size pe rc .p as si ng 0.01 0.05 0.10 0.15 0.20 0.25 0.30 0.35 Jiménez y González, 2020 31 de 33 particle.size pe rc .p as si ng 0.01 0.3 0.4 0.5 0.6 particle.size pe rc .p as si ng 0.01 0.1 0.2 0.3 0.4 0.5 0.6 particle.size pe rc .p as si ng 0.01 0.20 0.25 0.30 0.35 0.40 0.45 0.50 particle.size pe rc .p as si ng 0.01 0.25 0.30 0.35 0.40 0.45 0.50 Jiménez y González, 2020 32 de 33 particle.size pe rc .p as si ng 0.01 0.2 0.3 0.4 0.5 particle.size pe rc .p as si ng 0.01 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 particle.size pe rc .p as si ng 0.01 0.2 0.3 0.4 0.5 particle.size pe rc .p as si ng 0.01 0.2 0.3 0.4 0.5 0.6 Jiménez y González, 2020 33 de 33 particle.size pe rc .p as si ng 0.01 0.15 0.20 0.25 0.30 0.35 particle.size pe rc .p as si ng 0.01 0.4 0.5 0.6 0.7 particle.size pe rc .p as si ng 0.01 0.2 0.3 0.4 0.5 0.6 Portada Introducción Objetivo Método del hidrómetro Paquete envalysis Análisis de datos Base de datos Las salidas Clasificar datos de textura de suelo: USDA Obtener la clase de suelo Obtener el triángulo de textura Trabajando con el código Acerca de R Créditos y Licencia
Compartir