-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Problema al interpolar profundidades (spline) #34
Comments
Hola, el problema es que algunos perfiles tienen capas solapadas. Por ejemplo, el perfil 272 tiene una capa que va del 22 al 38 y la siguiente va del 35 al 58. library(dplyr)
SISINTAR::get_perfiles(272) |>
select(profundidad_superior, profundidad_inferior)
#> profundidad_superior profundidad_inferior
#> 1 0 22
#> 2 22 38
#> 3 35 58
#> 4 58 80 Created on 2022-07-29 by the reprex package (v2.0.1) El método falla porque hay puntos que están entre dos capas vez de una. Que yo sepa, no hay problema con que haya saltos entre capas. La interpolación te dará NAs, creo. Podés filtrar esos perfiles con este código: # Filtra perfiles con capas donde la profundidad superior es menor que la profundidad
# inferior de la capa anterior.
malos <- profiles |>
group_by(perfil_id) |>
filter(profundidad_superior < lag(profundidad_inferior)) |>
pull(perfil_id) |>
unique()
profiles <- filter(profiles, !perfil_id %in% malos) (Son unos cuantos: > malos
[1] 272 350 576 687 765 913 1287 2545 2855 3147 3177 3206
[13] 3295 3621 3745 3753 3795 3809 3839 3846 3856 3900 3907 3908
[25] 3909 3924 4055 4129 4139 4165 4222 4230 4235 4247 4276 4311
[37] 4320 4419 4896 4904 4918 5155 5188 5191 5230 5344 5490 5550
[49] 5871 6052 6151 6186 6263 6468 6773 6795 6838 6897 7331 ) @angelini75 @dariorodriguez ¿Qué habría que hacer en estos casos? ¿Son un error de la base o es una observación posible que hay que tener en cuenta en la interpolación? |
Gracias Elio por tu respuesta a Raúl. En el caso puntual del perfil 272 ya
lo revisé y corregí, se trataba de un error en la carga.
En caso que haya más de estos casos, puedo revisar las fichas originales y
resolverlo. Hace un tiempo estamos curando la base para que estos problemas
no ocurran.
Raúl, si en algo te podemos colaborar, a disposición.
Darío
El vie, 29 jul 2022 a las 11:58, Elio Campitelli ***@***.***>)
escribió:
… Hola, el problema es que algunos perfiles tienen capas solapadas. Por
ejemplo, el perfil 272 tiene una capa que va del 22 al 38 y la siguiente va
del 35 al 58.
library(dplyr)
SISINTAR::get_perfiles(272) |>
select(profundidad_superior, profundidad_inferior)
#> profundidad_superior profundidad_inferior
#> 1 0 22
#> 2 22 38
#> 3 35 58
#> 4 58 80
Created on 2022-07-29 by the reprex package <https://reprex.tidyverse.org>
(v2.0.1)
Podés filtrar esos perfiles con este código:
# Filtra perfiles con capas donde la profundidad superior es menor que la profundidad
# inferior de la capa anterior.
malos <- profiles |>
group_by(perfil_id) |>
filter(profundidad_superior < lag(profundidad_inferior)) |>
pull(perfil_id) |>
unique()
profiles <- filter(profiles, !perfil_id %in% malos)
Si no querés filtrarlos, podrías reemplazar las profundidades para que
sean consistentes, ya sea modificando la profundiad inferior de una capa o
la superior de la siguiente.
@angelini75 <https://github.com/angelini75> @dariorodriguez
<https://github.com/dariorodriguez> ¿Qué habría que hacer en estos casos?
¿Son un error de la base o es una observación posible que hay que tener en
cuenta en la interpolación?
—
Reply to this email directly, view it on GitHub
<#34 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AARBVAAJ7X2JQD5B6HM2TXLVWPWRLANCNFSM547JG6IA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Darío
|
Hola Dario, los perfiles que tienen ese problema (al menos en el archivo de Raúl) están ahora listados en la respuesta de Elio. |
Muchas gracias a todos, fueron muy amables y rápidos. Adicionando el filtro elaborado por Elio, ahora mi codigó funcionó. Saludos. |
Hola Raúl, qué bueno que pudiste solucionar eso. Tu consulta nos sirvió a
nosotros para resolver las inconsistencias de la base, que ya pude arreglar
(del listado que puso Elio) todos los perfiles salvo 2.
Y ahora entonces les planteo un problema que hasta ahora tenemos sin
solución: en algunos perfiles de suelo (esos 2 por ejemplo) por tratarse de
suelos que presentan un horizonte O en superficie (mantillo, material
vegetal semidescompuesto, etc.) dicho horizonte se describe como
sobrepuesto al suelo mineral, por lo que el perfil no arranca en 0 cm sino
más arriba...les dejo un ejemplo para ser más claro:
7 - 0 Horizonte Orgánico
0 - 15 Horizonte A
15 - 30 Horizonte B
....
De modo que el "techo" del horizonte O es 7 cm por arriba del suelo mineral
y su "piso" sería 0 cm que es donde empieza el A
Este problema genera confusión con los datos, pero las descripciones
morfológicas de los suelos con horizonte orgánico se realizan así
Saludos y la seguimos
El vie, 29 jul 2022 a las 17:50, Raul R. Poppiel ***@***.***>)
escribió:
… Muchas gracias a todos, fueron muy amables y rápidos.
Adicionando el filtro elaborado por Elio, ahora mi codigó funcionó.
Excelente paquete de herramientas para auxiliar a la Pedometria!
Saludos.
Raul.
—
Reply to this email directly, view it on GitHub
<#34 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AARBVADICAF3HTC3PGK6YMLVWQ7ZFANCNFSM547JG6IA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Darío
|
Una opción seria mantener la descripción morfológica original, y al lado adicionar las profundidades para fines de análisis de datos. Descripción morfológica original
Para fines de análise de datos (la profundidad superior del horizonte más superficial tendria valor cero, adicionando un valor constante a las demás profundidades)
Abrazos. |
Si el perfil arranca "más arriba" se cero, entonces lo más natural sería usar profundidad negativa, quizás? |
Además, la consistencia de los datos deveria ser analizada. |
Hola Elio, esa propuesta está buena...
Ahora, una vez que un usuario descargue un set de datos, como trabajaría
con esos datos negativos...para que le sirven ?
El sáb, 30 jul 2022 a las 10:52, Elio Campitelli ***@***.***>)
escribió:
… Si el perfil arranca "más arriba" se cero, entonces lo más natural sería
usar profundidad negativa, quizás?
—
Reply to this email directly, view it on GitHub
<#34 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AARBVACGO6XBQI6VMKRUHYTVWUXRNANCNFSM547JG6IA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Darío
|
Hola Raúl...esta propuesta está buena y de hecho hay reconocedores que
describen perfiles de ese modo, colocando el 0 en el techo del horizonte
orgánico...
Ahora bien, nos encontramos con 2 problemas: desde el punto de vista
cartográfico, en estos suelos la capa orgánica suele ser bastante difícil
de predecir (su espesor varía en distancias cortas, a veces desaparece,
otras se engrosa...constituye también una capa muy susceptible a ser
removida por el viento, lluvias o laboreo) quiero decir con esto que es muy
difícil estimar su extensión y características más allá del punto en el
cual se describió. El 2do problema tiene que ver con los datos que
incluimos en la base para su posterior análisis: por ejemplo incluir un
horizonte orgánico como superficial nos puede llevar a errores por ej en la
predicción de CO, ya que no sería raro que dicho perfil tenga valores de 20
o 30 % de CO, sin tener este carbono las características de estabilidad que
normalmente tiene la MO humificada.
La seguimos
El sáb, 30 jul 2022 a las 10:47, Raul R. Poppiel ***@***.***>)
escribió:
… Una opción seria mantener la descripción morfológica original, y al lado
adicionar las profundidades para fines de análisis de datos.
Descripción morfológica original
Sup Inf Hor
7 0 Horizonte Orgánico
0 15 Horizonte A
15 30 Horizonte B
Para fines de análise de datos (la profundidad superior del horizonte más
superficial tendria valor cero, adicionando un valor constante a las demás
profundidades)
Sup Inf Sup Inf Hor
0 (0+7) 0 7 Horizonte Orgánico
(0+7) (15+7) 7 22 Horizonte A
(15+7) (30+7) 22 37 Horizonte B
Abrazos.
Raul
—
Reply to this email directly, view it on GitHub
<#34 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AARBVAGXOFZVNH4NDJUQ7JLVWUW7ZANCNFSM547JG6IA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Darío
|
@dariorodriguez Ok, entendi. Entonces, Ud. recomienda filtrar (remover) los horizontes organicos (para suelos minerales) del conjunto de datos antes de iniciar um mapeo digital de carbono orgánico del suelo? En qué casos los horizontes organicos deverian considerarse (talvez para suelos organicos)? Estas discussiones son muy importantes. |
Hola Raúl, pienso que los suelos con horizontes orgánicos presentan muchos
inconvenientes para el mapeo, tanto tradicional como con metodologías MDS.
Tampoco tengo muy en claro si los problemas se resuelven eliminando sólo el
horizonte O. Me parece que en los casos que esos suelos sean poco
representativos, sería conveniente sacarlos del análisis, ya que por
ejemplo, los datos de fracciones texturales también son difíciles de
interpretar
El lun, 1 ago 2022 a las 9:03, Raul R. Poppiel ***@***.***>)
escribió:
… @dariorodriguez <https://github.com/dariorodriguez> Ok, entendi. Entonces,
Ud. recomienda filtrar (remover) los horizontes organicos (para suelos
minerales) del conjunto de datos antes de iniciar um mapeo digital de
carbono orgánico del suelo?
En qué casos los horizontes organicos deverian considerarse (talvez para
suelos organicos)?
Estas discussiones son muy importantes.
Desde ya, muchas gracias.
—
Reply to this email directly, view it on GitHub
<#34 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AARBVAALPAKXCKX5WOUS7VLVW64KVANCNFSM547JG6IA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Darío
|
Hola, como el problema original ya se resolvió, voy a cerrar este issue y seguimos sobre el tema del horizonte orgánico en teste otro issue: #35 Reproduje los comentarios sobre el tema en ese issue para que quede toda la conversación en un lugar. No pasé las consultas metodológicas que no están relacionadas sobre cómo representar esos datos en la base de datos. |
Perdón, sólo había visto el mail y no el mensaje en el GitHub. En unos días
tengo resuelto eso. Saludos !
El vie, 29 jul 2022 a las 12:26, Paola Corrales ***@***.***>)
escribió:
… Hola Dario, los perfiles que tienen ese problema (al menos en el archivo
de Raúl) están ahora listados en la respuesta de Elio.
—
Reply to this email directly, view it on GitHub
<#34 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AARBVADVY4EHYCVPEZJCYHDVWPZ2HANCNFSM547JG6IA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Darío
|
Estimad@s,
Mi problema es sobre un mensaje de error (ver abajo) cuando intento interpolar valores de atributos del suelo en intervalos de profundidades con el método splines del paquete SISINTAR.
Logre bajar los datos del servidor de SISINTA al PC e importarlos en R. Después de eso, apliqué las siguientes líneas de código al conjunto completo Perfiles_sisinta.csv
Para intentar identificar el error, he realizado varias pruebas dividiendo los datos en conjuntos menores (ver arriba), donde la interpolación funcionó bien para algunos conjuntos y para otros retornó el mismo mensaje de error. Después, comparé los datos de los conjuntos y me parecieron iguales, entonces, no conseguí identificar cual sería la fuente del problema.
Mi sospecha es que el valor de la profundidad inferior (para la camada anterior) no sea el mismo de la profundidad superior (para la camada siguiente), provocando una discontinuidad que impide el funcionamiento del código y retornando el mensaje de error. Uds. tienen algun codigo que realice esa verificación?
Yo necesito interpolar los datos desde 0 a 100 cm en intervalos de 20 cm usando splines.
Desde ya, agradezco cualquier tipo de ayuda.
Saludos
Raul.
The text was updated successfully, but these errors were encountered: