cboettig commited on
Commit
da2900f
·
1 Parent(s): e0eb606

:speak_no_evil:

Browse files
Files changed (1) hide show
  1. app.py +16 -6
app.py CHANGED
@@ -36,6 +36,7 @@ config = {
36
  "vertical": 0.1,
37
  "rank_index": 2,
38
  "taxa": "Aves",
 
39
  },
40
  "All": {
41
  "names": ["All"],
@@ -44,6 +45,7 @@ config = {
44
  "vertical": 1.0,
45
  "rank_index": 2,
46
  "taxa": "Aves",
 
47
  }
48
  }
49
 
@@ -60,10 +62,14 @@ with st.form("my_form"):
60
  with col3:
61
  st.markdown("#### 🐦 Select taxonomic groups")
62
  ## add support for multiple taxa!
63
- rank = st.selectbox("Taxonomic Rank", options=taxonomic_ranks, index = default["rank_index"])
 
 
64
  taxa = st.text_input("taxa", default["taxa"])
65
  if nunique:
66
- distinct_taxa = st.selectbox("Count only unique occurrences by:", options=taxonomic_ranks, index = default["rank_index"])
 
 
67
 
68
  with col4:
69
  st.markdown('''
@@ -122,10 +128,14 @@ def bar_chart(gdf_name, rank, taxa, zoom, distinct_taxa = ""):
122
 
123
  if gdf_name != "All":
124
  sel = sel.filter(_.city == gdf_name)
125
-
126
- sel = (sel
127
- .group_by(_.city, _.grade)
128
- .agg(n = _.count(), area = _.area.sum())
 
 
 
 
129
  .mutate(density = _.n /_.area)
130
  .group_by(_.grade)
131
  .agg(mean = _.density.mean(),sd = _.density.std())
 
36
  "vertical": 0.1,
37
  "rank_index": 2,
38
  "taxa": "Aves",
39
+ "unique_rank_index": 6,
40
  },
41
  "All": {
42
  "names": ["All"],
 
45
  "vertical": 1.0,
46
  "rank_index": 2,
47
  "taxa": "Aves",
48
+ "unique_rank_index": 6,
49
  }
50
  }
51
 
 
62
  with col3:
63
  st.markdown("#### 🐦 Select taxonomic groups")
64
  ## add support for multiple taxa!
65
+ rank = st.selectbox("Taxonomic Rank",
66
+ options=taxonomic_ranks,
67
+ index = default["rank_index"])
68
  taxa = st.text_input("taxa", default["taxa"])
69
  if nunique:
70
+ distinct_taxa = st.selectbox("Count only unique occurrences by:",
71
+ options=taxonomic_ranks,
72
+ index = default["unique_rank_index"])
73
 
74
  with col4:
75
  st.markdown('''
 
128
 
129
  if gdf_name != "All":
130
  sel = sel.filter(_.city == gdf_name)
131
+
132
+ sel = sel.group_by(_.city, _.grade)
133
+
134
+ if distinct_taxa != "": # count n unique taxa
135
+ sel = sel.agg(n = _[distinct_taxa].nunique(), area = _.area.sum())
136
+ else:
137
+ sel = sel.agg(n = _.count(), area = _.area.sum())
138
+ sel = (sel.
139
  .mutate(density = _.n /_.area)
140
  .group_by(_.grade)
141
  .agg(mean = _.density.mean(),sd = _.density.std())