From 0cd76b73d39f77f20c7ab5c400bce3e6e9e59fc6 Mon Sep 17 00:00:00 2001 From: "Andrew G. Brown" Date: Fri, 9 Apr 2021 07:06:01 -0700 Subject: [PATCH 1/2] Simplify Great Group formative elements --- data/ST_formative_elements.rda | Bin 4422 -> 4273 bytes .../dictionaries/greatgroup.csv | 144 +++++++----------- .../extract-and-prepare-dictionaries.R | 68 ++++----- .../formative-elements/formative-elements.rda | Bin 4416 -> 4275 bytes .../testthat/test-formative-element-parsing.R | 4 +- 5 files changed, 94 insertions(+), 122 deletions(-) diff --git a/data/ST_formative_elements.rda b/data/ST_formative_elements.rda index a302356d99c3c33569f49618fc61f8a303f884c6..9b14c8047b7d3fc50ac754258f214158463218cc 100644 GIT binary patch literal 4273 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 T7V9aJy`TRJy(Hz$=}!Ovq1a3P literal 4422 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 diff --git a/misc/formative-elements/dictionaries/greatgroup.csv b/misc/formative-elements/dictionaries/greatgroup.csv index 7c8039e..4a1b487 100644 --- a/misc/formative-elements/dictionaries/greatgroup.csv +++ b/misc/formative-elements/dictionaries/greatgroup.csv @@ -1,86 +1,58 @@ -element,derivation,connotation,simplified,link -acro,at the end,extreme weathering,, -acr,at the end,extreme weathering,, -al,aluminum,"high Al, low Fe",, -alb,white,presence of an albic horizon,, -anhy,dry,very dry,, -anthra,human,presence of an anthropic epipedon,, -aqui,water,wetness,, -aqu,water,wetness,, -argi,white clay,presence of an argillic horizon,, -calci,lime,presence of a calcic horizon,, -cryo,cold,cryic STR,, -cry,cold,cryic STR,, -duri,hard,presence of a duripan,, -dur,hard,presence of a duripan,, -dystro,infertile,low base saturation,, -dystr,infertile,low base saturation,, -endo,within,ground water table,, -epi,above,perched water table,, -eutro,fertile,high base saturation,, -eutr,fertile,high base saturation,, -ferr,iron,presence of Fe,, -fibr,fiber,least decomposed stage,, -fluv,river,flood plain,, -fol,leaf,mass of leaves,, -fragi,brittle,presence of a fragipan,, -fragloss,brittle + tongue,presence of a fragipan and glossic horizon,, -frasi,fresh,not salty,, -fulvi,brownish yellow,dark brown with organic carbon,, -fulv,brownish yellow,dark brown with organic carbon,, -glac,icy,presence of ice lenses,, -glosso,tongue,presence of a glossic horizon,, -gloss,tongue,presence of a glossic horizon,, -gypsi,gypsum,presence of a gypsic horizon,, -hal,salt,salty,, -haplo,simple,minimum horizon development,, -hapl,simple,minimum horizon development,, -hap,simple,minimum horizon development,, -hemi,half,intermediate decomposition,, -histo,tissue,organic soil material,, -hist,tissue,organic soil material,, -humi,earth,presence of organic carbon,, -hum,earth,presence of organic carbon,, -hydro,water,presence of water,, -hydr,water,presence of water,, -kandi,modified from kandite,presence of a kandic horizon,, -kanhaplo,kandite + simple,thin kandic horizon,, -kanhap,kandite + simple,thin kandic horizon,, -luvi,to wash,illuvial organic material,, -melano,black,presence of a melanic epipedon,, -melan,black,presence of a melanic epipedon,, -molli,soft,presence of a mollic epipedon,, -moll,soft,presence of a mollic epipedon,, -natri,sodium,presence of a natric horizon,, -natr,sodium,presence of a natric horizon,, -pale,old,excessive development,, -petro,rock,petrocalcic horizon,, -petr,rock,petrocalcic horizon,, -plac,flat stone,presence of a thin pan,, -plagg,sod,presence of a plaggen epipedon,, -plinth,brick,presence of plinthite,, -psammo,sand,sandy texture,, -psamm,sand,sandy texture,, -quartzi,quartz,high quartz content,, -rhodo,rose,dark red colors,, -rhod,rose,dark red colors,, -sali,salt,presence of a salic horizon,, -sal,salt,presence of a salic horizon,, -sapr,rotten,most decomposed stage,, -sombri,dark,presence of a sombric horizon,, -sphagno,bog,presence of sphagnum moss,, -sulfo,sulfur,presence of sulfides or their oxidation products,, -sulfi,sulfur,presence of sulfides or their oxidation products,, -sulf,sulfur,presence of sulfides or their oxidation products,, -torri,hot and dry,torric/aridic SMR,, -udi,humid,udic SMR,, -ud,humid,udic SMR,, -umbri,shade,presence of an umbric epipedon,, -umbr,shade,presence of an umbric epipedon,, -usti,burnt,ustic SMR,, -ust,burnt,ustic SMR,, -verm,worm,"wormy, or mixed by animals",, -vitri,glass,presence of glass,, -vitr,glass,presence of glass,, -xero,dry,xeric SMR,, -xer,dry,xeric SMR,, +element,derivation,connotation,simplified,link +acr,at the end,extreme weathering,, +al,aluminum,"high Al, low Fe",, +alb,white,presence of an albic horizon,, +anhy,dry,very dry,, +anthra,human,presence of an anthropic epipedon,, +aqu,water,wetness,, +argi,white clay,presence of an argillic horizon,, +calci,lime,presence of a calcic horizon,, +cry,cold,cryic STR,, +dur,hard,presence of a duripan,, +dystr,infertile,low base saturation,, +endo,within,ground water table,, +epi,above,perched water table,, +eutr,fertile,high base saturation,, +ferr,iron,presence of Fe,, +fibr,fiber,least decomposed stage,, +fluv,river,flood plain,, +fol,leaf,mass of leaves,, +fragi,brittle,presence of a fragipan,, +fragloss,brittle + tongue,presence of a fragipan and glossic horizon,, +frasi,fresh,not salty,, +fulv,brownish yellow,dark brown with organic carbon,, +glac,icy,presence of ice lenses,, +gloss,tongue,presence of a glossic horizon,, +gypsi,gypsum,presence of a gypsic horizon,, +hal,salt,salty,, +hap,simple,minimum horizon development,, +hemi,half,intermediate decomposition,, +hist,tissue,organic soil material,, +hum,earth,presence of organic carbon,, +hydr,water,presence of water,, +kandi,modified from kandite,presence of a kandic horizon,, +kanhap,kandite + simple,thin kandic horizon,, +luvi,to wash,illuvial organic material,, +melan,black,presence of a melanic epipedon,, +moll,soft,presence of a mollic epipedon,, +natr,sodium,presence of a natric horizon,, +pale,old,excessive development,, +petr,rock,petrocalcic horizon,, +plac,flat stone,presence of a thin pan,, +plagg,sod,presence of a plaggen epipedon,, +plinth,brick,presence of plinthite,, +psamm,sand,sandy texture,, +quartzi,quartz,high quartz content,, +rhod,rose,dark red colors,, +sal,salt,presence of a salic horizon,, +sapr,rotten,most decomposed stage,, +sombri,dark,presence of a sombric horizon,, +sphagno,bog,presence of sphagnum moss,, +sulf,sulfur,presence of sulfidic materials or their oxidation products,, +torri,hot and dry,torric/aridic SMR,, +ud,humid,udic SMR,, +umbr,shade,presence of an umbric epipedon,, +ust,burnt,ustic SMR,, +verm,worm,"wormy, or mixed by animals",, +vitr,glass,presence of glass,, +xer,dry,xeric SMR,, diff --git a/misc/formative-elements/extract-and-prepare-dictionaries.R b/misc/formative-elements/extract-and-prepare-dictionaries.R index 6020e8b..50f28f0 100644 --- a/misc/formative-elements/extract-and-prepare-dictionaries.R +++ b/misc/formative-elements/extract-and-prepare-dictionaries.R @@ -1,34 +1,34 @@ - -library(jsonlite) - -# order -soilorder <- read.csv('dictionaries/order.csv', stringsAsFactors=FALSE) -str(soilorder) - -# suborder -suborder <- read.csv('dictionaries/suborder.csv', stringsAsFactors=FALSE) -str(suborder) - -# greatgroup -greatgroup <- read.csv('dictionaries/greatgroup.csv', stringsAsFactors=FALSE) -str(greatgroup) - -# subgroup -subgroup <- read.csv('dictionaries/subgroup.csv', stringsAsFactors=FALSE) -str(subgroup) - - -# pack into a list -ST.formative_elements <- list( - soilorder=soilorder, - suborder=suborder, - greatgroup=greatgroup, - subgroup=subgroup -) - -# try saving as JSON -ST.json <- toJSON(ST.formative_elements, auto_unbox = TRUE, pretty = TRUE, na='string') -cat(ST.json, file = 'formative-elements.json') - -# save in compressed format for packaging -save(ST.formative_elements, file='formative-elements.rda') + +library(jsonlite) + +# order +soilorder <- read.csv('misc/formative-elements/dictionaries/order.csv', stringsAsFactors=FALSE) +str(soilorder) + +# suborder +suborder <- read.csv('misc/formative-elements/dictionaries/suborder.csv', stringsAsFactors=FALSE) +str(suborder) + +# greatgroup +greatgroup <- read.csv('misc/formative-elements/dictionaries/greatgroup.csv', stringsAsFactors=FALSE) +str(greatgroup) + +# subgroup +subgroup <- read.csv('misc/formative-elements/dictionaries/subgroup.csv', stringsAsFactors=FALSE) +str(subgroup) + + +# pack into a list +ST.formative_elements <- list( + soilorder=soilorder, + suborder=suborder, + greatgroup=greatgroup, + subgroup=subgroup +) + +# try saving as JSON +ST.json <- toJSON(ST.formative_elements, auto_unbox = TRUE, pretty = TRUE, na='string') +cat(ST.json, file = 'misc/formative-elements/formative-elements.json') + +# save in compressed format for packaging +save(ST.formative_elements, file='misc/formative-elements/formative-elements.rda') diff --git a/misc/formative-elements/formative-elements.rda b/misc/formative-elements/formative-elements.rda index ac842ad6ff0407e12e362644718f0037eef5091e..25c434e327960bd80423aff59f5d9c5a6c7dd74d 100644 GIT binary patch literal 4275 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 V-;FHZQ)GKT{TCxLgaz$S008PYNb3Lq literal 4416 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 GRsaCCuBn&+ diff --git a/tests/testthat/test-formative-element-parsing.R b/tests/testthat/test-formative-element-parsing.R index fcb826a..419e490 100644 --- a/tests/testthat/test-formative-element-parsing.R +++ b/tests/testthat/test-formative-element-parsing.R @@ -101,7 +101,7 @@ test_that("greatgroup formative elements", { # full subgroup x <- GreatGroupFormativeElements('typic haploxerolls') - expect_equal(x$defs$element, 'haplo') + expect_equal(x$defs$element, 'hap') expect_equal(x$char.index, 7L) # more complex example @@ -110,7 +110,7 @@ test_that("greatgroup formative elements", { expect_equal(x$char.index, 15) x <- GreatGroupFormativeElements('alfic humic vitrixerands') - expect_equal(x$defs$element, 'vitri') + expect_equal(x$defs$element, 'vitr') expect_equal(x$char.index, 13) x <- GreatGroupFormativeElements('acrustoxic kanhaplustults') From 831b68baa0691e09273308ce3316ea174d7bfdfc Mon Sep 17 00:00:00 2001 From: "Andrew G. Brown" Date: Thu, 15 Apr 2021 14:28:10 -0700 Subject: [PATCH 2/2] Undo wordsmith for sulf- great groups --- data/ST_formative_elements.rda | Bin 4273 -> 4271 bytes .../dictionaries/greatgroup.csv | 2 +- .../formative-elements/formative-elements.rda | Bin 4275 -> 4273 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/data/ST_formative_elements.rda b/data/ST_formative_elements.rda index 9b14c8047b7d3fc50ac754258f214158463218cc..6a8222f9b2c0eca2a47dc766a9e4527abbd8a141 100644 GIT binary patch delta 4028 zcmV;t4@2;=A+I5SABzY80000000!+`>y8_@6_&k{R@#f#vAsroAGdXaHcott(*$q~ zq;7(uK#C#>iU9o)P&1S?@XT<+nb}?WmtQ8&(&y+q^mp8I$RT-1jds^T(>35-K$gfM z4-XH|E&Ez2URJKX~|m_+hWtKMSQZ@MH|%yWf8I z!&Jze)#)DpfoDADMP2oJXD`CTK2X5#A$-omXRGZrV%apUL{`~yksLW6`N@h^U~`x&PC>RS{Dc2^QsgHr7>zUpTHiMZG}IbK1`>wzl+5DUQ6xI zzLH8?%`M4)KCtbYl$(n3=wnnAYv@0SGfOEl2x8BoV9TreVe^)39GRvIw|+ zfV@@Fep=5XRzytBQdp|^ZuA@#1HOff3RcTBj^;vtrY}U%cKnmq5t>H2qLiY<#o|?z z7SV%y50OGHB#*>2s^>gvN_ZZ9azD;nN{Ztrn^vCGw=Z|3yFj^7mH0Y9_48PzwDYl@@9taAfSP) zJ2^ijOUAl282Jr&(F}Hr=+loLMo%6+zJoKA>%iBN z#&qmY(~0|?HG8JXR9Mds-p908m=!B6hqaLIcO%W*&NjAVUJ^S#f5p17VK_>^8?gWa0(5e zZDxc%lmfzxk=|%7>bsFc4r4%QxNO$AP}Zp}Od!l#a4^fGU?zu93kq*{3E;gN zAIfc`twc3H0M)kbF3;219F|N@M1gZ_aaa5FnlB+Rpd|slpNpfH&awLry2doVw*)k= z(4im(2sA(%@^p~)awR4#x+2ok0Z>>O-$KCzuE;Dp+bRBf*Dy!<~*|wzmIz> z^BcFn=6A_5i$Y3H>dAD}e$I>snpIe&;Ni6O9~%G>FYHX@TpR)0hOj$^-J|JWm2=!D z+lGyWE(7JnmOxz}H=kX901pC42iPM3&*<+4Y-P}&JA?^<2cSn`CGSB%a@esN4IU2v zR$;wyT1@en!7j&8?-I=jYIAEO<+tpo(i;EqAmchny{;{R^KCKu0Ji_d%%MU+miFLf zX9ByGBCX~C2QvqD*V5P;xYs!Vq7(}%2gRKbRzOq_lzJlG)gTRjg5Ok%TyKl*BAsuG zFdJ_mMCtqPAZehEvMhV<_zAQ!NiE}RWVxiU9X6&JsE&fXR>y?{tPtHCX@{7H+C&_^ zig(G!!^-`HNkeOGBCH{zd03yg34mH{$9)BL5E`PeJyP@Vbbnu1WAU&xfz!rXE&!B~ z5Rc5khdaL8QK;sBiwt%G5bD1&BOM2Sk3dBigzwv7AB-BJBnLxgJ$=yqKg8E#h&u>R zzB5Q?*YD(m>5Dk!;1I?LY$gSuAdP*Z8V`z0CxDCboOeCCq-5Dm@Em2tiurOkoHx2b zpt~W{iQF&yvs7`A>>0YBDy>riZ&{20Oc27>W@&GtDo4tHkLYcaL97}Mcd?PeSH_FV zGI=A|Lv)UOoQ=kSa&`?|ewsJAJz7in9?wKcu-8>@W74%B+3nm}nC@L03vb>YoTlC` zn2mo3X!J>)D0V)&0%icPfMu)pb~ki1)EG$Sq}b$*<7t2($c~SNLO4q6YLD(3<2!dd3hvEa z33udwwzP$Na^T%-ub_sVyefIq!>zX)xkUt~xhm4;n}ErnhKgjU0fGh2MDzpPo4Z2e z3PaqIyOIvQW@R%_q|8wnW}K+U5VnH_EkO{nB^@$tDJ7*1j0A$tWh4$3o+wHdJ6fA0 zmU>lqAQDu064+2xbUlY9mGP*Joc1Yh^-0MRvxSOCbBLRN@`!3o8|TarI;N8h3LybO zlP(GyL>06(+E_LTslX<{1*zH89s-j`ocR(x+rZ;B(88M5pl=`@wzO|Z07Qp%rI4=O z2nM1KNR_Eh2WF|tWl)xMTvSYaHIt1BM}L9Upz{G{6HGfQi*OjIq(W3AL5*m`;hgfn ziAPud;%%WCg$vx~J=r$O#Wjh?mac=*Naa|cNjjD;Y8UsRb_^eS&ON8RZ=&}LM5!EN zAdNn?5j?{5`)pxVAeL?C42c41M@Cg_Lmg>S7RUIS)01#J56aP2$K1BtI#2jJZGUAT zT+`MI28JlLiFNd+WMy?~iRpk|GPFy5P~=9^?$PIJjHsVl?>V&%2rWU^;yZg7Lk~mcm2z$7i%oFnSTp3>tb6c zRD9sQ6btYDtn0iDlU}r5;3=bh#kH+-JAD$XQ#j~5`#wqJ2=i8HV#h$e1TqiioTT@- zERRk64QxCwgiDOJnK|Lrr0tmy$=%4$_V6-1Zjg7oW_Ix1(lN5|vpsfPwuhHKyDE|6 zoGt~;w{V~O9CIv4dc(?;4}Y5E@e9*B){@jxCW$fqj6Juaq4^ko8pkD{G@h&4R|Q*= zNY6}K94zqtVW2T;(q=6&9RwQC-0rrDB;;(jRi0=}JE8{52_=3O3CR^1PNaD5@wy@fK$|X{399;+Kv{*#DWBw0if^PS=*BMB(GhvmRsJ#xmk9^d~^T?mc5?3Tn_ zbu=rtB3WqyGoxAM3LGc&h;K$p{#ZsQz|L-yUL48?FR z6HI*s&9UvC9M$d^Jl%MD3}yDb$kEAvx9nP}m;I~KTYH1UCVM+b_FI`V=p_Y{+y^uHL+Ewt&3oRZDN)3dt9ybNp6}uR zEFh95vkHHGDJOB6!$UI??;vIeNw^%tLxgfkC#a^i2)f4~gt4P@5|gnH7B4A`Hf?dm zNSC@&7%igEK_7*nTqKY&|NTLfb7yzK(&{~o&d~MQId;P<)IE1yoRjwtH#T<#)Y|C= z%3=VVzHY;>)D;2b?MuX2m~q|#D343+q>=yW_v!bq^L_fF>h$x5etM_6dHQ)nlVlJt i9%G~tASPPgm`ToRitR=g>nW1GpZ^Q90j%8MPXGX%Y0o|Y delta 4011 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 RDU!XP{|mh&<<03&002?8z5oCK diff --git a/misc/formative-elements/dictionaries/greatgroup.csv b/misc/formative-elements/dictionaries/greatgroup.csv index 4a1b487..45d5667 100644 --- a/misc/formative-elements/dictionaries/greatgroup.csv +++ b/misc/formative-elements/dictionaries/greatgroup.csv @@ -48,7 +48,7 @@ sal,salt,presence of a salic horizon,, sapr,rotten,most decomposed stage,, sombri,dark,presence of a sombric horizon,, sphagno,bog,presence of sphagnum moss,, -sulf,sulfur,presence of sulfidic materials or their oxidation products,, +sulf,sulfur,presence of sulfides or their oxidation products,, torri,hot and dry,torric/aridic SMR,, ud,humid,udic SMR,, umbr,shade,presence of an umbric epipedon,, diff --git a/misc/formative-elements/formative-elements.rda b/misc/formative-elements/formative-elements.rda index 25c434e327960bd80423aff59f5d9c5a6c7dd74d..52745592fe22bb2706f5663b808710a9013afe42 100644 GIT binary patch delta 3806 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 UjV#_%WP3mV7cjL|P2^7i0OuD_2><{9 delta 3791 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 F000ExI&S~~