Clasically people learn the hydrometer method, it’s great, tried and true, and gives good data. That being said, similar accuracy has been demonstrated by the modified pipette method (detailed second here). It allows for much higher sample throughput making it my preferred method.
Graduated cylinders (1000 mL) Mortar and pestle scale sodium hexametaphosphate (solution of 50g/L) plungers hydrometer
Lightly crush soils to separate aggregates and sieve to 2 mm. Pick out twigs, grass roots etc.
Weigh 40 grams (+/- 0.5) of air dry <2mm soil into a bottle. Add 50 mL sodium hexametaphosphate solution and 100 mL water to that bottle. Shake on a mechanical shaker overnight.
Add soil solution to graduated cylinder. This must be a quatitative transfer, since the calculations rely on the original weight. You can use water and a squirt bottle to do this, as it will all end up in the graduated cylinder and the volume can be accounted for, by filling each cylinder to a full 1000 mL.
Agitate the solution for 1 minute with the plunger so all soil is in suspension Gently place hydrometer in, let it settle, and get an accurate reading from the meniscus at 40 seconds time (sand has settled), and then again at exactly 120 minutes.
While waiting… you need to do a blank, using the hexametaphosphate solution take the same readings with no soil added.
Calculations are as follows:
#Calculations (made up numbers)
#You will need to calculate concentration from the hydrometer which gives a density of the mixture.
#calc percent sand
a<- 39/1000 #original concentration, which is the oven dry weight of soil added to 1000 mL fluid in the cylinder. For example, 39 grams/L
b<- 12/1000#corrected 40 second reading (from reading-blankblank)
c<- -2/1000 #blank correction
pctsand<-function(original, reading, correction){(original-(reading+correction))/original}
sand<-pctsand(a,b,c)*100 #convert to percent
#this would be a sample of 74.4% sand!
#calc percent clay
a<- 39/1000 #original concentration, which is the oven dry weight of soil added to 1000 mL fluid in the cylinder. For example, 39 grams/L
d<- 5/1000#corrected 40 second reading (from reading-blankblank)
e<- -1/1000 #blank correction
pctclay<-function(original, reading, correction){((reading+correction))/original}
clay<-pctclay(a,d,e)*100 #convert to percent
#10.3% Clay
#calc percent silt
pctsilt<-function(sand,clay){100-(clay+sand)}
silt<-pctsilt(sand, clay)
Method is based on stokes law: v=g(ps-pl)x^2/18n under the assumption that soil particles are spheres.
v=velocity of a fall g=acceleration of gravity ps = particle density pl = liquid density x = particle diameer n = fluid viscosity
50 mL centrifuge tubes
Aluminum weigh boats Scale (a standard analytical scale that measures to 0.0001 g)
50 mL dispensette
adjustable 5 mL pipette with tips
reciprocating shaker
0.5% Sodium Hexametaphosphate - 5 g/L
Sand (seconds) | Clay (minutes) | |
---|---|---|
16°C | 12.3 | 128.1 |
18°C | 11.7 | 121.9 |
20°C | 11.1 | 116.1 |
22°C | 10.6 | 110.8 |
24°C | 10.2 | 105.8 |
26°C | 9.7 | 101.2 |
#example calculation from some of my data using R.
sand<-function(dryweight,tinweight,blank, originalsoiladded){100-(((((dryweight-tinweight)-blank)*40/2.5)/originalsoiladded)*100)} #generate a function for inputting data.
#data below for inputting into function
a<-1.1561
b<-1.0889
c<-0.0133
d<-5.6549
sand(a,b,c,d)
## [1] 84.74951
clay<-function(dryweight, tinweight, blank, originalsoiladded){((((dryweight-tinweight)-blank)*40/2.5)/originalsoiladded)*100}
e<-0.9394
f<-0.9206
c<-0.0133
d<-5.6549
clay(e,f,c,d)
## [1] 1.556173
silt<-(100-sand(a,b,c,d)-clay(e,f,c,d))
print(silt)
## [1] 13.69432