Preguntas para consumo de datos de los Ejemplares del SNIB

Componente

Título

Ejemplares del SNIB

Descripción

Preguntas de usuarios a resolver mediante servicios para el consumo de datos de Ejemplares del SNIB.

Especificaciones generales

Uso

Plantea las preguntas de datos de ejemplares del SNIB tanto de usuarios internos como externos sin distinción (creo…) a resolver mediante servicios.

Uso

Plantea las preguntas de datos de ejemplares del SNIB tanto de usuarios internos como externos sin distinción (creo…) a resolver mediante servicios.

Reglas generales

Al proveer información de ejemplares se deben excluir:

  • Registros marcados como eliminados.

  • Registros en proceso de integración. (Estos hoy no se marcan en la base pero se puede hacer para la siguiente integración)

  • Registros con restricción.

Campos a entregar

Si bien los campos que se entregan pueden variar dependiendo de cada pregunta, es necesario definir la estructura base y las variantes que pueda tener.

Nota: Actualmente en la descarga de ejemplares se tiene una estructura base para entregar la información consultada y también la opción de que el usuario agregue o quite campos de una lista de 98.

Fuente de la información

Base de datos de Ejemplares del SNIB.

Discutir la arquitectura.

Preguntas para el componente Ejemplar

Como antecedente tenemos preguntas que el usuario puede plantear mediante filtros a la información implementadas en http://www.snib.mx/ejemplares/descarga/

Estas fueron formuladas con la colaboración de algunas personas de las áreas SIYA, SCAT, SIB, SSIG, CE y SI; varios de ellos tanto en un rol de usuarios como de responsables de responder preguntas de usuarios externos.

 

Pregunta

Valor

 

Pregunta

Valor

1

¿Cuáles son todos los ejemplares del SNIB?

 

2

¿Cuáles son los ejemplares del grupo biológico X?

Anfibios, Aves, Bacterias, Hongos, Invertebrados, Mamíferos, Peces, Plantas, Protoctistas, Reptiles, Virus.

3

¿Cuáles son los ejemplares del reino X?

Animalia, Fungi, Plantae, Prokariotae, Protoctista.

4

¿Cuáles son los ejemplares del grupo biológico X y/o del reino Y y/o de la categoría taxonómica Z y/o del taxón V?

Categorìa tax: division o phyllum, clase, orden, familia, genero.

Taxón: cualquiera en el SNIB perteneciente a la categoría tax. seleccionada.

5

¿Cuáles son los ejemplares con categoría de riesgo y conservación en la lista de X y/o de especies invasoras?

CITES, IUCN, NOM, Prioritarias, Invasoras

6

¿Cuáles son las aves con categoría de residencia X?

Catálogo de categorías de residencia. P ej Accidental(A), Oceánica (O), Migratoria de Invierno (MI), etc.

7

¿Cuáles son los ejemplares con año de colecta X o rango (Y,Z)

Año de colecta inicial con 4 dígitos entre el menor año de colecta y el mayor.

Rango dado por año inicial y final de colecta.

8

¿Cuáles son los ejemplares del país X y/o estado Y y/o municipio W y/o Área Natural Protegida V y/o Tipo de Vegetación Z y/o región marina U

Catálogos de país, estado, etc.

9

¿Cuáles son los ejemplares con coordenadas geográficas?

 

10

¿Cuáles son los ejemplares marinos?

 

11

¿Cuáles son los ejemplares de la región marina X?

Catálogo de regiones marinas

En la tabla anterior las preguntas se listaron de manera no exhaustiva respecto de las combinaciones que resultan al seleccionar los criterios para formularlas.

Los filtros o criterios disponibles para formular la pregunta son:

Filtro

Multiselección de valores

Tipo

% uso *

Filtro

Multiselección de valores

Tipo

% uso *

Grupo biológico

No

 

58.8

Reino

No

Taxonomía

64

Categoría taxonómica

No

Taxonomía

p ej género ->22

familia ->4.2

Taxón

Si

Taxonomía

 

Riesgo y conservación

Si

Taxonomía

p ej NOM059->5

Categoría de residencia de aves

Si

Taxonómica-geográfica

0.5

Año de colecta

No

Curatorial

2.1

Excluir ejemplares sin año de colecta

No

Curatorial

3.3

País

Si

Geografía

26.5

Estado

Si

Geografía

17

Municipio

Si

Geografía

8

Área natural protegida ANP

Si

Geografía

5.7

Tipo de vegetación

Si

Geografía

1.1

Región marina

Si

Geografía

1.3

Únicamente los ejemplares con coordenadas

No

Geografía

4.2

Solo ejemplares marinos

No

Geografía

 

Como responder las preguntas desde la base de datos del SNIB?? A continuación las preguntas serán expresadas a modo de cuantificar los registros en el SNIB, sin embargo con el query de respuesta base se puede cambiar fácilmente el ¿cuántos? a ¿cuáles? en todas las preguntas de manera sencilla.

El plantear las preguntas y responderlas con un query ayudará a tener la visibilidad de las tablas que intervienen y las condiciones que deben usarse en cada caso.

 

Pregunta

Respuesta

 

Pregunta

Respuesta

1

número de ejemplares en el snib

select count(1) as ejemplares from snib.ejemplar_curatorial
where estadoregistro='';

2

número de ejemplares por procedencia

select procedenciadatos,count(1) as ejemplares
from snib.ejemplar_curatorial
where estadoregistro='' group by 1;

3

número de ejemplares por grupo biológico

select n.grupo as grupobiologico,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.nombre_taxonomia n on e.llavenombre=n.llavenombre
where e.estadoregistro='' group by 1;

4

número de ejemplares por procedencia y grupo biológico

select e.procedenciadatos,n.grupo as grupobiologico,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.nombre_taxonomia n on e.llavenombre=n.llavenombre
where e.estadoregistro='' group by 1,2;

5

número de ejemplares colectados/observados/reportados en la UNAM

select count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.catinstitucion i on e.idinstitucioncatconabio=i.idinstitucioncat
where i.siglasinstitucion like '%UNAM%' and estadoregistro='' and procedenciadatos<>'NO DISPONIBLE';

6

número de ejemplares colectados/observados/reportados por institución

select i.siglasinstitucion,i.nombreinstitucion,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.catinstitucion i on e.idinstitucioncatconabio=i.idinstitucioncat
where estadoregistro='' and procedenciadatos<>'NO DISPONIBLE' group by 1,2;

7

número de ejemplares colectados/observados/reportados por colección

select c.siglascoleccion,c.nombrecoleccion,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.catcoleccioninstitucion c on e.idcoleccioncatconabio=c.idcoleccioncat
where estadoregistro='' and procedenciadatos<>'NO DISPONIBLE' group by 1,2;

8

número de ejemplares colectados por año

select aniocolecta,count(1) as ejemplares
from snib.ejemplar_curatorial
where estadoregistro='' and procedenciadatos='Colectado' group by 1;

9

número de ejemplares observados por año

select aniocolecta,count(1) as ejemplares
from snib.ejemplar_curatorial
where estadoregistro='' and procedenciadatos='Observado' group by 1;

10

número de ejemplares reportados por año

select aniocolecta,count(1) as ejemplares
from snib.ejemplar_curatorial
where estadoregistro='' and procedenciadatos='Reportado' group by 1;

11

número de ejemplares por país valido

select r.nombrepaismapa,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.regionsitiosig r on e.llaveregionsitiosig=r.llaveregionsitiosig
where e.estadoregistro='' and r.paiscodigovalidacion=20 group by 1;

12

número de ejemplares por estado valido

select r.nombrepaismapa,r.nombreestadomapa,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.regionsitiosig r on e.llaveregionsitiosig=r.llaveregionsitiosig
where e.estadoregistro='' and r.estadocodigovalidacion=20 group by 1,2;

13

número de ejemplares por municipio valido

select r.nombrepaismapa,r.nombreestadomapa,r.nombremunicipiomapa,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.regionsitiosig r on e.llaveregionsitiosig=r.llaveregionsitiosig
where e.estadoregistro='' and r.municipiocodigovalidacion=20 group by 1,2,3;

14

número de ejemplares por ANP Federales

select substring_index(r.anpfederales,"(",1) as anpfederales,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.regionsitiosig r on e.llaveregionsitiosig=r.llaveregionsitiosig
where e.estadoregistro='' and r.anpfederales<>'' group by 1;

15

número de ejemplares por anp estatales

select substring_index(r.anpestatales,"(",1) as anpestatales,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.regionsitiosig r on e.llaveregionsitiosig=r.llaveregionsitiosig
where e.estadoregistro='' and r.anpestatales<>'' group by 1;

16

número de ejemplares por anp otras

select substring_index(r.anpotras,"(",1) as anpotras,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.regionsitiosig r on e.llaveregionsitiosig=r.llaveregionsitiosig
where e.estadoregistro='' and r.anpotras<>'' group by 1;

17

número de ejemplares por tipovegetacionmapa

select r.tipovegetacionmapa,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.regionsitiosig r on e.llaveregionsitiosig=r.llaveregionsitiosig
where e.estadoregistro='' and r.tipovegetacionmapa not in('','NO APLICA') group by 1;

18

número de ejemplares por categoría de riesgo NOM

select NOM,count(1) as ejemplares
from (select e.llaveejemplar,c.categoria as NOM
from snib.ejemplar_curatorial e inner join snib.nombre_taxonomia n on e.llavenombre=n.llavenombre
inner join snib.relnombreejemplarcategoria rnec on n.llavenombre=rnec.llavenombre
inner join snib.categoriasproteccion c on rnec.idNOM=c.idcategoriaproteccion
UNION
select e.llaveejemplar,c.categoria
from snib.ejemplar_curatorial e inner join snib.relnombreejemplarcategoria rnec on e.llaveejemplar=rnec.llaveejemplar
inner join snib.categoriasproteccion c on rnec.idNOM=c.idcategoriaproteccion) as t group by 1;

19

número de ejemplares por categoría de riesgo IUCN

select IUCN,count(1) as ejemplares
from (select e.llaveejemplar,c.categoria as IUCN
from snib.ejemplar_curatorial e inner join snib.nombre_taxonomia n on e.llavenombre=n.llavenombre
inner join snib.relnombreejemplarcategoria rnec on n.llavenombre=rnec.llavenombre
inner join snib.categoriasproteccion c on rnec.idIUCN=c.idcategoriaproteccion
UNION
select e.llaveejemplar,c.categoria
from snib.ejemplar_curatorial e inner join snib.relnombreejemplarcategoria rnec on e.llaveejemplar=rnec.llaveejemplar
inner join snib.categoriasproteccion c on rnec.idIUCN=c.idcategoriaproteccion) as t group by 1;

20

número de ejemplares por categoría de riesgo CITES

select c.categoria as CITES,count(1)
from snib.ejemplar_curatorial e inner join snib.nombre_taxonomia n on e.llavenombre=n.llavenombre
inner join snib.relnombreejemplarcategoria rnec on n.llavenombre=rnec.llavenombre
inner join snib.categoriasproteccion c on rnec.idCITES=c.idcategoriaproteccion group by 1;

21

ejemplares con coordenadas

select count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.regionsitiosig r on e.llaveregionsitiosig=r.llaveregionsitiosig
where e.estadoregistro='' and r.latitud is not null;

22

ejemplares validos a País

select count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.regionsitiosig r on e.llaveregionsitiosig=r.llaveregionsitiosig
where e.estadoregistro='' and r.paiscodigovalidacion=20;

23

ejemplares validos a estado

select count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.regionsitiosig r on e.llaveregionsitiosig=r.llaveregionsitiosig
where e.estadoregistro='' and r.estadocodigovalidacion=20;

24

ejemplares validos a municipio

select count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.regionsitiosig r on e.llaveregionsitiosig=r.llaveregionsitiosig
where e.estadoregistro='' and r.municipiocodigovalidacion=20;

25

ejemplares validos a localidad

select count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.regionsitiosig r on e.llaveregionsitiosig=r.llaveregionsitiosig
where e.estadoregistro='' and r.localidadcodigovalidacion=20;

26

número de ejemplares por categoría residencia aves

select categoriaresidenciaaves,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.nombre_taxonomia n on e.llavenombre=n.llavenombre
where e.estadoregistro='' and categoriaresidecniaaves<>'' group by 1;

27

número de ejemplares por ambiente

select ambientenombre,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.nombre_taxonomia n on e.llavenombre=n.llavenombre
where e.estadoregistro='' and ambientenombre<>'' group by 1;

28

número de ejemplares validos por ambiente

select ambientenombre,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.nombre_taxonomia n on e.llavenombre=n.llavenombre
where e.estadoregistro='' and ambientenombre<>'' and validacionambientegeneral='VALIDO' group by 1;

29

número de ejemplares por tipo

select t.tipo,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.tipo t on e.idtipo=t.idtipo
where e.estadoregistro='' and t.tipo<>'NO APLICA' group by 1;

30

número de ejemplares por proyecto

select proyecto,count(1) as ejemplares
from snib.ejemplar_curatorial
where estadoregistro='' group by 1;

31

número de ejemplares de especies invasoras

select n.estatusinvasora,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.nombre_taxonomia n on e.llavenombre=n.llavenombre
where e.estadoregistro='' and n.estatusinvasora!='' group by 1;

32

número de ejemplares por prioridad

select n.prioritarias,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.nombre_taxonomia n on e.llavenombre=n.llavenombre
where e.estadoregistro='' and n.prioritarias<>'' group by 1;

33

número de ejemplares por formadecrecimiento

select n.formadecrecimiento,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.nombre_taxonomia n on e.llavenombre=n.llavenombre
where e.estadoregistro='' and n.formadecrecimiento<>'' group by 1;

34

número de ejemplares por tipo de endemismo

select n.endemismo,count(1) as ejemplares
from snib.ejemplar_curatorial e inner join snib.nombre_taxonomia n on e.llavenombre=n.llavenombre
where e.estadoregistro='' and n.endemismo<>'' group by 1;

35

número de ejemplares por estatus taxonomico validados completamente

select n.estatuscatscat,count(1)
from snib.ejemplar_curatorial e inner join snib.nombre n on e.llavenombre=n.llavenombre
where e.estadoregistro='' and n.estatuscatscat<>'' group by 1;

36

número de ejemplares con nombrecomun

select count(1) as ejemplares
from snib.ejemplar_curatorial e inner join (select nc.llavenombre
from snib.nombrecomun nc
where nc.nombrecomun not in('','NO APLICA','NO DISPONIBLE') group by nc.llavenombre) n on e.llavenombre=n.llavenombre
where e.estadoregistro='';