Revision 13103
Added by Aaron Marcuse-Kubitza almost 11 years ago
trunk/validation/aggregating/plots/SALVIAS/bien3_validations_salvias_db_original.sql | ||
---|---|---|
1 |
-- ----------------------------------------------------------------------------- |
|
2 |
-- Quantitative validation queries against the original SALVIAS database |
|
3 |
-- ------------------------------------------------------------------------- |
|
4 |
|
|
5 |
-- ------------------ |
|
6 |
-- Set variables specific to this source |
|
7 |
-- Currently configured for SALVIAS |
|
8 |
-- ------------------ |
|
9 |
|
|
10 |
USE salvias_plots; |
|
11 |
|
|
12 |
-- SALVIAS projects in BIEN |
|
13 |
-- Must filter out all others as not all SALVIAS plots exported to BIEN |
|
14 |
SET @p = "'Gentry Transect Dataset','Boyle Transects','Enquist Lab Transect Dataset','ACA Amazon Forest Inventories','Bonifacino Forest Transects','Cam Webb Borneo Plots','DeWalt Bolivia forest plots','La Selva Secondary Forest Plots','Noel Kempff Forest Plots','Noel Kempff Savanna Plots','OTS Transects','Pilon Lajas Treeplots Bolivia','RAINFOR - 0.1 ha Madre de Dios, Peru','RAINFOR - 1 ha Peru'"; |
|
15 |
|
|
16 |
-- ------------------ |
|
17 |
-- 1. Count of projects |
|
18 |
-- ------------------ |
|
19 |
SET @sql= CONCAT(' |
|
20 |
SELECT COUNT(*) AS projects |
|
21 |
FROM projects |
|
22 |
WHERE project_name IN (',@p,') |
|
23 |
LIMIT 10 |
|
24 |
'); |
|
25 |
PREPARE stmt FROM @sql; |
|
26 |
EXECUTE stmt; |
|
27 |
|
|
28 |
-- ------------------ |
|
29 |
-- 2. List of project names |
|
30 |
-- ------------------ |
|
31 |
SET @sql= CONCAT(' |
|
32 |
SELECT project_name AS projectname |
|
33 |
FROM projects |
|
34 |
WHERE project_name IN (',@p,') |
|
35 |
LIMIT 10 |
|
36 |
'); |
|
37 |
PREPARE stmt FROM @sql; |
|
38 |
EXECUTE stmt; |
|
39 |
|
|
40 |
-- ------------------ |
|
41 |
-- 3. Count of all plots in this source |
|
42 |
-- ------------------ |
|
43 |
SET @sql= CONCAT(' |
|
44 |
SELECT COUNT(DISTINCT SiteCode) AS plots |
|
45 |
FROM projects p JOIN PlotMetadata pm |
|
46 |
ON p.project_id=pm.project_id |
|
47 |
WHERE p.project_name IN (',@p,') |
|
48 |
LIMIT 10 |
|
49 |
'); |
|
50 |
PREPARE stmt FROM @sql; |
|
51 |
EXECUTE stmt; |
|
52 |
|
|
53 |
-- ------------------ |
|
54 |
-- 4. Count of plots in each project in this source |
|
55 |
-- ------------------ |
|
56 |
SET @sql= CONCAT(' |
|
57 |
SELECT p.project_name, COUNT(*) AS plots |
|
58 |
FROM projects p JOIN PlotMetadata pm |
|
59 |
ON p.project_id=pm.project_id |
|
60 |
WHERE p.project_name IN (',@p,') |
|
61 |
GROUP BY p.project_name |
|
62 |
LIMIT 10 |
|
63 |
'); |
|
64 |
PREPARE stmt FROM @sql; |
|
65 |
EXECUTE stmt; |
|
66 |
|
|
67 |
-- ------------------ |
|
68 |
-- 5.List of plot codes by project |
|
69 |
-- ------------------ |
|
70 |
SET @sql= CONCAT(' |
|
71 |
SELECT p.project_name, pm.SiteCode |
|
72 |
FROM projects p JOIN PlotMetadata pm |
|
73 |
ON p.project_id=pm.project_id |
|
74 |
WHERE p.project_name IN (',@p,') |
|
75 |
LIMIT 10 |
|
76 |
'); |
|
77 |
PREPARE stmt FROM @sql; |
|
78 |
EXECUTE stmt; |
|
79 |
|
|
80 |
-- ------------------ |
|
81 |
-- 6. List of plots with stem measurements |
|
82 |
-- ------------------ |
|
83 |
SET @sql= CONCAT(' |
|
84 |
SELECT DISTINCT p.project_name, pm.SiteCode |
|
85 |
FROM projects p JOIN PlotMetadata pm |
|
86 |
JOIN PlotObservations po JOIN stems s |
|
87 |
ON p.project_id=pm.project_id AND pm.PlotID=po.PlotID |
|
88 |
AND po.PlotObsID=s.plotobs_id |
|
89 |
WHERE p.project_name IN (',@p,') |
|
90 |
GROUP BY p.project_name, SiteCode |
|
91 |
ORDER BY p.project_name, SiteCode |
|
92 |
LIMIT 10 |
|
93 |
'); |
|
94 |
PREPARE stmt FROM @sql; |
|
95 |
EXECUTE stmt; |
|
96 |
|
|
97 |
-- ------------------ |
|
98 |
-- 7.List of plots with counts of individuals per species |
|
99 |
-- ------------------ |
|
100 |
SET @sql= CONCAT(' |
|
101 |
SELECT DISTINCT p.project_name, pm.SiteCode |
|
102 |
FROM projects p JOIN PlotMetadata pm JOIN PlotObservations po |
|
103 |
ON p.project_id=pm.project_id AND pm.PlotID=po.PlotID |
|
104 |
WHERE p.project_name IN (',@p,') |
|
105 |
AND po.NoInd>1 |
|
106 |
GROUP BY p.project_name, SiteCode |
|
107 |
ORDER BY p.project_name, SiteCode |
|
108 |
LIMIT 10 |
|
109 |
'); |
|
110 |
PREPARE stmt FROM @sql; |
|
111 |
EXECUTE stmt; |
|
112 |
|
|
113 |
-- ------------------ |
|
114 |
-- 8.List of plots which use percent cover |
|
115 |
-- ------------------ |
|
116 |
SET @sql= CONCAT(' |
|
117 |
SELECT DISTINCT p.project_name, pm.SiteCode |
|
118 |
FROM projects p JOIN PlotMetadata pm JOIN PlotObservations po |
|
119 |
ON p.project_id=pm.project_id AND pm.PlotID=po.PlotID |
|
120 |
WHERE p.project_name IN (',@p,') |
|
121 |
AND cover_percent IS NOT NULL |
|
122 |
GROUP BY p.project_name, SiteCode |
|
123 |
ORDER BY p.project_name, SiteCode |
|
124 |
LIMIT 10 |
|
125 |
'); |
|
126 |
PREPARE stmt FROM @sql; |
|
127 |
EXECUTE stmt; |
|
128 |
|
|
129 |
-- ------------------ |
|
130 |
-- 9.List of plots which use line-intercept |
|
131 |
-- ------------------ |
|
132 |
SET @sql= CONCAT(' |
|
133 |
SELECT DISTINCT p.project_name, pm.SiteCode |
|
134 |
FROM projects p JOIN PlotMetadata pm JOIN PlotObservations po |
|
135 |
ON p.project_id=pm.project_id AND pm.PlotID=po.PlotID |
|
136 |
WHERE p.project_name IN (',@p,') |
|
137 |
AND intercept_cm IS NOT NULL |
|
138 |
GROUP BY p.project_name, SiteCode |
|
139 |
ORDER BY p.project_name, SiteCode |
|
140 |
LIMIT 10 |
|
141 |
'); |
|
142 |
PREPARE stmt FROM @sql; |
|
143 |
EXECUTE stmt; |
|
144 |
|
|
145 |
-- ------------------ |
|
146 |
-- 10. Count of individuals per plot in each project |
|
147 |
-- |
|
148 |
-- Method: Sum on NoInd (number of individuals) column. |
|
149 |
-- Note 1: `individuals` should be NULL for plots which use percent cover |
|
150 |
-- or line-intercept methods. |
|
151 |
-- Note 2: Do not count records in PlotObservations table, as this will give |
|
152 |
-- incorrect total for plots such as Gentry plot, which count individuals |
|
153 |
-- per species per subplot |
|
154 |
-- ------------------ |
|
155 |
SET @sql= CONCAT(' |
|
156 |
SELECT p.project_name, SiteCode AS plotcode, |
|
157 |
SUM(NoInd) AS individuals |
|
158 |
FROM projects p JOIN PlotMetadata pm JOIN PlotObservations po |
|
159 |
ON p.project_id=pm.project_id AND pm.PlotID=po.PlotID |
|
160 |
WHERE p.project_name IN (',@p,') |
|
161 |
GROUP BY p.project_name, SiteCode |
|
162 |
ORDER BY p.project_name, SiteCode |
|
163 |
LIMIT 10 |
|
164 |
'); |
|
165 |
PREPARE stmt FROM @sql; |
|
166 |
EXECUTE stmt; |
|
167 |
|
|
168 |
-- ------------------ |
|
169 |
-- 11. Count of stems per plot in each project |
|
170 |
-- |
|
171 |
-- Method: count records in stems table |
|
172 |
-- ------------------ |
|
173 |
SET @sql= CONCAT(' |
|
174 |
SELECT p.project_name, SiteCode AS plotcode, |
|
175 |
COUNT(DISTINCT stem_id) AS stems |
|
176 |
FROM projects p JOIN PlotMetadata pm |
|
177 |
JOIN PlotObservations po JOIN stems s |
|
178 |
ON p.project_id=pm.project_id AND pm.PlotID=po.PlotID |
|
179 |
AND po.PlotObsID=s.plotobs_id |
|
180 |
WHERE p.project_name IN (',@p,') |
|
181 |
GROUP BY p.project_name, SiteCode |
|
182 |
ORDER BY p.project_name, SiteCode |
|
183 |
LIMIT 10 |
|
184 |
'); |
|
185 |
PREPARE stmt FROM @sql; |
|
186 |
EXECUTE stmt; |
|
187 |
|
|
188 |
-- ------------------ |
|
189 |
-- 12. Count of verbatim taxa per plot in each project |
|
190 |
-- |
|
191 |
-- Note: Assumes identical concatenation of taxonomic fields |
|
192 |
-- to form verbatim taxon name in vegBIEN |
|
193 |
-- ------------------ |
|
194 |
SET @sql= CONCAT(" |
|
195 |
SELECT project_name, plotcode, COUNT(taxon) AS taxa |
|
196 |
FROM |
|
197 |
( |
|
198 |
SELECT DISTINCT p.project_name, SiteCode AS plotcode, |
|
199 |
TRIM(CONCAT_WS(' ',IFNULL(Family,''),IFNULL(Genus,''),IFNULL(Species,''), |
|
200 |
IF(infra_ep_1 IS NULL,IFNULL(auth,''), |
|
201 |
TRIM(CONCAT_WS(' ',IFNULL(infra_rank_1,''),IFNULL(infra_ep_1,''),IFNULL(infra_auth_1,''))) |
|
202 |
))) AS taxon |
|
203 |
FROM projects p JOIN PlotMetadata pm JOIN PlotObservations po |
|
204 |
ON p.project_id=pm.project_id AND pm.PlotID=po.PlotID |
|
205 |
WHERE p.project_name IN (",@p,") |
|
206 |
) AS a |
|
207 |
GROUP BY project_name, plotcode |
|
208 |
ORDER BY project_name, plotcode |
|
209 |
LIMIT 10 |
|
210 |
"); |
|
211 |
PREPARE stmt FROM @sql; |
|
212 |
EXECUTE stmt; |
|
213 |
|
|
214 |
-- ------------------ |
|
215 |
-- 13. List of distinct verbatim taxa in each plot in each project |
|
216 |
-- |
|
217 |
-- Note: Assumes identical concatenation of taxonomic fields |
|
218 |
-- to form verbatim taxon name in vegBIEN. |
|
219 |
-- ------------------ |
|
220 |
SET @sql= CONCAT(" |
|
221 |
SELECT DISTINCT p.project_name, SiteCode AS plotcode, |
|
222 |
TRIM(CONCAT_WS(' ',IFNULL(Family,''),IFNULL(Genus,''),IFNULL(Species,''), |
|
223 |
IF(infra_ep_1 IS NULL,IFNULL(auth,''), |
|
224 |
TRIM(CONCAT_WS(' ',IFNULL(infra_rank_1,''),IFNULL(infra_ep_1,''),IFNULL(infra_auth_1,''))) |
|
225 |
))) AS taxon |
|
226 |
FROM projects p JOIN PlotMetadata pm JOIN PlotObservations po |
|
227 |
ON p.project_id=pm.project_id AND pm.PlotID=po.PlotID |
|
228 |
WHERE p.project_name IN (",@p,") |
|
229 |
ORDER BY p.project_name, SiteCode, taxon |
|
230 |
LIMIT 10 |
|
231 |
"); |
|
232 |
PREPARE stmt FROM @sql; |
|
233 |
EXECUTE stmt; |
|
234 |
|
|
235 |
-- ------------------ |
|
236 |
-- 14. Count of individuals per (verbatim) taxon per plot in each project |
|
237 |
-- |
|
238 |
-- Note: Assumes identical concatenation of taxonomic fields |
|
239 |
-- to form verbatim taxon name in vegBIEN |
|
240 |
-- ------------------ |
|
241 |
SET @sql= CONCAT(" |
|
242 |
SELECT DISTINCT p.project_name, SiteCode AS plotcode, |
|
243 |
TRIM(CONCAT_WS(' ',IFNULL(Family,''),IFNULL(Genus,''),IFNULL(Species,''), |
|
244 |
IF(infra_ep_1 IS NULL,IFNULL(auth,''), |
|
245 |
TRIM(CONCAT_WS(' ',IFNULL(infra_rank_1,''),IFNULL(infra_ep_1,''),IFNULL(infra_auth_1,''))) |
|
246 |
))) AS taxon, |
|
247 |
SUM(NoInd) AS individuals |
|
248 |
FROM projects p JOIN PlotMetadata pm JOIN PlotObservations po |
|
249 |
ON p.project_id=pm.project_id AND pm.PlotID=po.PlotID |
|
250 |
WHERE p.project_name IN (",@p,") |
|
251 |
GROUP BY p.project_name, SiteCode, taxon |
|
252 |
ORDER BY p.project_name, SiteCode, taxon |
|
253 |
LIMIT 10 |
|
254 |
"); |
|
255 |
PREPARE stmt FROM @sql; |
|
256 |
EXECUTE stmt; |
|
257 |
|
|
258 |
-- ------------------ |
|
259 |
-- 15. Percent cover of each (verbatim) taxon in each plot in each project |
|
260 |
-- where percent cover is recorded |
|
261 |
-- |
|
262 |
-- Note 1: Assumes identical concatenation of taxonomic fields |
|
263 |
-- to form verbatim taxon name in vegbien |
|
264 |
-- Note 2: Grouping mean cover for entire plot allows inclusion of plots with |
|
265 |
-- subplots (separate cover measure for each species in each subplot), |
|
266 |
-- plots with strata (separate cover measures for each species in each |
|
267 |
-- stratum), and plots without subplots or strata (one cover measure |
|
268 |
-- per species per plot) in same query. |
|
269 |
-- Note 3: currently, there are no SALVIAS percent cover plots in BIEN |
|
270 |
-- ------------------ |
|
271 |
SET @sql= CONCAT(" |
|
272 |
SELECT DISTINCT p.project_name, SiteCode AS plotcode, |
|
273 |
TRIM(CONCAT_WS(' ',IFNULL(Family,''),IFNULL(Genus,''),IFNULL(Species,''), |
|
274 |
IF(infra_ep_1 IS NULL,IFNULL(auth,''), |
|
275 |
TRIM(CONCAT_WS(' ',IFNULL(infra_rank_1,''),IFNULL(infra_ep_1,''),IFNULL(infra_auth_1,''))) |
|
276 |
))) AS taxon, |
|
277 |
AVG(cover_percent) AS mean_cover |
|
278 |
FROM projects p JOIN PlotMetadata pm JOIN PlotObservations po |
|
279 |
ON p.project_id=pm.project_id AND pm.PlotID=po.PlotID |
|
280 |
WHERE p.project_name IN (",@p,") |
|
281 |
AND cover_percent IS NOT NULL |
|
282 |
GROUP BY p.project_name, SiteCode, taxon |
|
283 |
ORDER BY p.project_name, SiteCode, taxon |
|
284 |
LIMIT 10 |
|
285 |
"); |
|
286 |
PREPARE stmt FROM @sql; |
|
287 |
EXECUTE stmt; |
|
288 |
|
|
289 |
-- ------------------ |
|
290 |
-- 16. Intercept values for each (verbatim) taxon in each plot in each project |
|
291 |
-- where line-intercept values are recorded |
|
292 |
-- |
|
293 |
-- Note 1: Assumes identical concatenation of taxonomic fields |
|
294 |
-- to form verbatim taxon name in vegbien |
|
295 |
-- Note 2: Grouping mean cover for entire plot combines plots with |
|
296 |
-- subplots (separate cover measure for each species in each subplot) with |
|
297 |
-- plots with strata (separate cover measures for each species in each |
|
298 |
-- stratum) with plots without subplots or strata (one cover measure |
|
299 |
-- per species per plot. |
|
300 |
-- ------------------ |
|
301 |
SET @sql= CONCAT(" |
|
302 |
SELECT DISTINCT p.project_name, SiteCode AS plotcode, |
|
303 |
TRIM(CONCAT_WS(' ',IFNULL(Family,''),IFNULL(Genus,''),IFNULL(Species,''), |
|
304 |
IF(infra_ep_1 IS NULL,IFNULL(auth,''), |
|
305 |
TRIM(CONCAT_WS(' ',IFNULL(infra_rank_1,''),IFNULL(infra_ep_1,''),IFNULL(infra_auth_1,''))) |
|
306 |
))) AS taxon, |
|
307 |
intercept_cm |
|
308 |
FROM projects p JOIN PlotMetadata pm JOIN PlotObservations po |
|
309 |
ON p.project_id=pm.project_id AND pm.PlotID=po.PlotID |
|
310 |
WHERE p.project_name IN (",@p,") |
|
311 |
AND intercept_cm IS NOT NULL |
|
312 |
ORDER BY p.project_name, SiteCode, taxon |
|
313 |
LIMIT 10 |
|
314 |
"); |
|
315 |
PREPARE stmt FROM @sql; |
|
316 |
EXECUTE stmt; |
|
317 |
|
|
318 |
-- ------------------ |
|
319 |
-- 17. Count of subplots per plot, for each project |
|
320 |
-- ------------------ |
|
321 |
SET @sql= CONCAT(" |
|
322 |
SELECT project_name, pm.SiteCode AS plotcode, COUNT(DISTINCT Line) as subplots |
|
323 |
FROM projects p JOIN PlotMetadata pm JOIN PlotObservations po |
|
324 |
ON p.project_id=pm.project_id AND pm.PlotID=po.PlotID |
|
325 |
WHERE p.project_name IN (",@p,") |
|
326 |
GROUP BY project_name, pm.SiteCode |
|
327 |
ORDER BY project_name, pm.SiteCode |
|
328 |
LIMIT 10 |
|
329 |
"); |
|
330 |
PREPARE stmt FROM @sql; |
|
331 |
EXECUTE stmt; |
|
332 |
|
|
333 |
-- ------------------ |
|
334 |
-- 18. List of subplots codes for each plot for each project |
|
335 |
-- |
|
336 |
-- Note: includes plots with and without subplots |
|
337 |
-- ------------------ |
|
338 |
SET @sql= CONCAT(" |
|
339 |
SELECT DISTINCT project_name, pm.SiteCode AS plotcode, Line as subplot |
|
340 |
FROM projects p JOIN PlotMetadata pm JOIN PlotObservations po |
|
341 |
ON p.project_id=pm.project_id AND pm.PlotID=po.PlotID |
|
342 |
WHERE p.project_name IN (",@p,") |
|
343 |
AND pm.SiteCode IS NOT NULL |
|
344 |
ORDER BY project_name, pm.SiteCode, subplot |
|
345 |
LIMIT 10 |
|
346 |
"); |
|
347 |
PREPARE stmt FROM @sql; |
|
348 |
EXECUTE stmt; |
Also available in: Unified diff
removed old version validation/aggregating/plots/SALVIAS/bien3_validations_salvias_db_original.sql. use validation/aggregating/plots/SALVIAS/_archive/bien3_validations_salvias_db_original.sql instead.