May 04, 2020

R script tellingen

Here’s the little R script I used to make that fig from the iNat API

ere’s the little R script I used to make that fig from the iNat API
library(jsonlite)
options(timeout= 4000000)
dat

Posted on May 04, 2020 23:44 by ahospers ahospers | 0 comments | Leave a comment

March 20, 2020

Computer Vision Artifical Knowledge Links

Waarneming.nl: Max 3 keer per jaar herziening van het model.
Model 1.Naturalis: 2-20 photos per species
Model 2.Naturalis: 40 photos per species

Model 2-4.1Nat:40 photographers per species
Model 5.1Nat:1000 photos per species
eferentiewaarnemingen er gebruikt worden (5000 of 40)

https://groups.google.com/forum/#!topic/inaturalist/K9nJOC0Cjss

https://www.inaturalist.org/pages/help#cv-taxa
https://www.inaturalist.org/pages/help#computer-vision
https://www.inaturalist.org/pages/help#cv-select
https://www.inaturalist.org/blog/31806-a-new-vision-model
FWIW, there's also discussion and some additional charts at
https://forum.inaturalist.org/t/psst-new-vision-model-released/10854/11
https://www.inaturalist.org/pages/identification_quality_experiment
https://www.inaturalist.org/journal/loarie/10016-identification-quality-experiment-update
https://www.inaturalist.org/journal/loarie/9260-identification-quality-experiment-update
about a rare species, but the system might still recommend one based on nearby observation
https://forum.inaturalist.org/t/identification-quality-on-inaturalist/7507
https://github.com/kueda/inaturalist-identification-quality-experiment/blob/master/identification-quality-experiment.ipynb
"nearby" means near in space and time
The model became more efficient in sedges and grasse
the vision model does not itself incorporate non-image data other than taxon IDs
b/c because
https://www.inaturalist.org/blog/25510-vision-model-updates ("taxon and region comparisons" 20190614)
https://distill.pub/2020/circuits/zoom-in/ ("connections between neurons")
https://www.inaturalist.org/projects/flora-of-russia/journal/31726
https://www.inaturalist.org/posts/31726-
https://forum.inaturalist.org/t/provide-relevant-geographic-data-confidence-level-accuracy-scores-with-ai-suggestions/9226/2
https://forum.inaturalist.org/t/range-covered-by-the-seen-nearby-feature/2849/5

--
https://forum.inaturalist.org/t/use-computer-vision-to-annotate-observations/3331
https://forum.inaturalist.org/t/what-image-s-are-used-for-training-computer-vision/3307/6

Posted on March 20, 2020 15:31 by ahospers ahospers | 1 comment | Leave a comment

December 25, 2019

State of matter Life Sea Weeds

Below are links to observations in need of identifying that are listed as State of matter Life. These observations are listed as such because taxon conflicts have moved them to the root of the tree. If you have some time and an interest in particular branches of the tree of life and wish to help move observations to a more identifiable level, please do.

The links below have at least one suggested ID of the listed taxon. The identification may or may not result in elevating the chosen taxon as the chosen taxon may be the suggested ID that is anchoring the observation at the root of the tree.

Included are the numbers of observations involving that taxon as of May 23, 2019

Fungi and Lichens (2,598)
https://www.inaturalist.org/observations/identify?lrank=stateofmatter&ident_taxon_id=47170 27

Slime Moulds (405)
https://www.inaturalist.org/observations/identify?lrank=stateofmatter&ident_taxon_id=47684 8

Cyanobacteria (235)
https://www.inaturalist.org/observations/identify?lrank=stateofmatter&ident_taxon_id=67334 8

Green Algae (559)
https://www.inaturalist.org/observations/identify?lrank=stateofmatter&ident_taxon_id=50863 3

Brown Algae (692)
https://www.inaturalist.org/observations/identify?lrank=stateofmatter&ident_taxon_id=48220 4

Sac Fungi (955)
https://www.inaturalist.org/observations/identify?lrank=stateofmatter&ident_taxon_id=48250 4

Animal (3,726)
https://www.inaturalist.org/observations/identify?lrank=stateofmatter&ident_taxon_id=1 75

Plant (5,351)
https://www.inaturalist.org/observations/identify?lrank=stateofmatter&ident_taxon_id=47126 65

Place
To limit the place, add &place_id=#### to the end of the string, for example: https://www.inaturalist.org/observations/identify?lrank=stateofmatter&ident_taxon_id=1&place_id=7085

New user
Plus if you would like to look for observations in the desired taxon that may be submitted by new users of 1wk or less add &user_after=1w to the end of the string, for example:
https://www.inaturalist.org/observations/identify?lrank=stateofmatter&ident_taxon_id=47126&user_after=1w

To check the numbers:
(https://www.inaturalist.org/observations?lrank=stateofmatter&ident_taxon_id=insert-taxon-ID-here 2)- this link does not work as the taxon_id=needs to be filled and is just for illustrative purposes

I’ll try to edit content including links and numbers as things change over time.

--

----

hey are from observations including multiple species, across plants & animals usually. Unfortunately the only way to fix this is to have the user re-upload them as individual observations.
If you see these, you can 1) request the user split the observation up, 2) ID as life, then 3) mark “Based on the evidence, can the Community ID still be confirmed or improved? No, it’s as good as it can be”. See also this affiliated feature request: https://forum.inaturalist.org/t/easy-way-to-flag-multiple-species-observations/278

It would be nice if there was a coarse ID for seaweeds but I’m not aware of one.

Seaweeds are tough because they are polyphyletic:

Brown Algaes (such as Leathesia) are in the Class Phaeophyceae within the Kingdom Chromista
Blue-Green Algae (such as Nostoc) is Phylum Cyanobacteria within the Kingdom Bacteria
Red Algae (such as Halosaccion) is Phylum Rhodophyta within the Kingdom Plantae
Green Algae (such as Dictyosphaeria) is Phylum Chlorophyta within the Kingdom Plantae
These algaes can all appear seaweedy depending on your acumen.

Identification conflicts between Red and Green Algaes will move the ID to Kingdom Plantae
Identification conflicts between Red or Green Algaes and Blue-Green Algaes will move the ID to State of matter Life
Identification conflicts between Red or Green Algaes and Brown Algaes will move the ID to State of matter Life
Identification conflicts between Blue-Green Algae and Brown Algaes will move the ID to State of matter Life
Observations that remain within the Kingdoms usually are filtered for and may be reviewed by novices and experts within that taxon.

Observations that move to State of matter Life may not be as likely to be reviewed by experts within that taxon. (if you are unaware of the topic of State of matter Life, you can see some of the issues here https://forum.inaturalist.org/t/state-of-matter-life-limbo/2870 4 )

Conflicting Phylums seem to become harder to move to Research Grade.

I think it is great to identify seaweeds. My one recommendation is that if you do, try to monitor those identifications so that you can modify a conflicting identification that you have made if a well supported alternate identification has been made.

1.Brown Algae
https://www.inaturalist.org/observations/compare
https://forum.inaturalist.org/t/easy-way-to-compare-lists/1707

Posted on December 25, 2019 22:20 by ahospers ahospers | 3 comments | Leave a comment

December 08, 2019

Lookup tables

I would love these fields to be included, but if you wish i could reduce it easily
Group=1=Birds
2=Mammals
3=Reptiles/Amfibians
4=Butterflies
5=Dragonflies
6=Insects(Diverse)
7=Snails Gastropoda
8=Lepidoptera
9=Fish
Plants=10
Fungi=11
MossesLichens=12
Orthoptera=14

table id text species group
Activity 28 territorial 1
Activity 17 discovery (dead) 1
Activity 78 roost 1
Activity 3117 probable nesting location 1
Activity 11 flying north 1
Activity 3154 window victim 1
Activity 13 flying east 1
Activity 3197 basking in sun 1
Activity 79 (colour) ring bearing 1
Activity 3177 with camera trap 1
Activity 3265 destroyed nest 1
Activity 3121 recently fledged young 1
Activity 6 flying over 1
Activity 26 long-term stay 1
Activity 3268 drowning victim 1
Activity 14 flying west 1
Activity 3149 windfarm victim 1
Activity 3116 transport of food or faeces 1
Activity 30 hunting 1
Activity 3118 pair courtship and or mating 1
Activity 3092 specimen in collection 1
Activity 3143 in pellet 1
Activity 3115 occupied nest with young 1
Activity 3148 powerline victim 1
Activity 77 resting 1
Activity 8 flying north-west 1
Activity 3174 soundtrapped 1
Activity 3114 occupied nest with eggs 1
Activity 9 flying south-east 1
Activity 25 alarming 1
Activity 24 caught 1
Activity 2016 road kill 1
Activity 3099 caught by cat 1
Activity 3158 moulting 1
Activity 29 territory 1
Activity 1 present 1
Activity 3053 adult in breeding area 1
Activity 3144 sick/injured 1
Activity 3052 pair in breeding area 1
Activity 3051 occupied nest 1
Activity 3122 with brood patch 1
Activity 7 flying north-east 1
Activity 12 flying south 1
Activity 4 singing 1
Activity 3124 distraction display 1
Activity 3119 nest building 1
Activity 2002 tracks 1
Activity 2 foraging 1
Activity 3 calling 1
Activity 10 flying south-west 1
Activity 3120 recently used nest 1
Activity 31 flushing 1
Activity 66 recorded with Bat detector 2
Activity 16 foraging 2
Activity 2029 swimming 2
Activity 2023 (near) nest 2
Activity 3193 basking in sun 2
Activity 3156 maternity colony 2
Activity 15 present 2
Activity 2024 colony in tree 2
Activity 2030 other 2
Activity 2026 colony other 2
Activity 3095 moving west 2
Activity 72 flying over 2
Activity 27 in pellet 2
Activity 71 calling 2
Activity 3064 with camera trap 2
Activity 3093 moving south 2
Activity 2028 hibernation 2
Activity 3096 moving east 2
Activity 3269 drowning victim 2
Activity 3100 caught by cat 2
Activity 2027 mating 2
Activity 67 road kill 2
Activity 3175 specimen in collection 2
Activity 2025 colony in building 2
Activity 3094 moving north 2
Activity 2022 flushed 2
Activity 3195 occupied nest 2
Activity 68 caught 2
Activity 18 dead 2
Activity 3151 pregnant 2
Activity 3192 social behaviour 2
Activity 3194 unknown 2
Activity 3196 swarming 2
Activity 3152 lactating 2
Activity 3150 excreta 2
Activity 57 tracks 2
Activity 3057 recorded with detector (hunting) 2
Activity 3266 powerline victim 2
Activity 2021 sick/injured 2
Activity 3056 recorded with Bat detector (social behav.) 2
Activity 3153 windfarm victim 2
Activity 3267 dusk emergence 2
Activity 3058 recorded with detector (passing by) 2
Activity 3179 tagged 2
Activity 3088 tracks 3
Activity 64 calling 3
Activity 2012 hibernating 3
Activity 2005 road kill 3
Activity 3155 basking in sun 3
Activity 3199 parasitized 3
Activity 3146 sick/injured 3
Activity 3172 found in drain 3
Activity 3101 caught by cat 3
Activity 3087 moulting 3
Activity 3180 foraging 3
Activity 21 dead 3
Activity 3198 mating 3
Activity 19 present 3
Activity 3200 basking in sun 4
Activity 3132 silk nest 4
Activity 3181 foraging 4
Activity 20 present 4
Activity 3202 parasitized 4
Activity 75 flying east 4
Activity 34 laying egg 4
Activity 33 copula 4
Activity 2037 road kill 4
Activity 76 flying west 4
Activity 3078 collected 4
Activity 73 flying north 4
Activity 23 dead 4
Activity 3270 drowning victim 4
Activity 3065 hibernating 4
Activity 74 flying south 4
Activity 3201 at light 4
Activity 3102 caught by cat 4
Activity 3123 flying over 4
Activity 46 dead 5
Activity 2007 road kill 5
Activity 3113 tracks 5
Activity 3183 foraging 5
Activity 3131 flying west 5
Activity 3128 flying east 5
Activity 3103 caught by cat 5
Activity 3130 flying south 5
Activity 3079 collected 5
Activity 47 copula 5
Activity 3233 unknown 5
Activity 3234 parasitized 5
Activity 3129 flying north 5
Activity 48 laying egg 5
Activity 3127 flying over 5
Activity 3089 mixed tandem 5
Activity 45 present 5
Activity 3235 territorial 5
Activity 3134 at light 5
Activity 50 moulting 5
Activity 54 laying egg 6
Activity 2017 road kill 6
Activity 3207 foraging 6
Activity 3066 collected 6
Activity 3210 swarming 6
Activity 51 present 6
Activity 92 at sugar 6
Activity 3206 basking in sun 6
Activity 3208 unknown 6
Activity 3189 foraging 6
Activity 93 at light 6
Activity 52 dead 6
Activity 2009 hibernating 6
Activity 3107 tracks 6
Activity 60 singing 6
Activity 3209 parasitized 6
Activity 2011 nest 6
Activity 53 copula 6
Activity 3251 hibernating 7
Activity 70 dead 7
Activity 3254 living animal 7
Activity 3135 autochtonous/living on the spot 7
Activity 3136 brought by men 7
Activity 3140 unknown 7
Activity 3191 foraging 7
Activity 2038 road kill 7
Activity 3139 from deep earth-drilling 7
Activity 2032 washed ashore 7
Activity 3137 landed by fisheries 7
Activity 3252 aestivation 7
Activity 3067 collected 7
Activity 69 present 7
Activity 3138 on drifting object 7
Activity 3253 parasitized 7
Activity 2006 hibernating 8
Activity 83 dead 8
Activity 3203 flying over 8
Activity 2008 road kill 8
Activity 3126 on pheromones 8
Activity 82 present 8
Activity 90 at light 8
Activity 3204 parasitized 8
Activity 3182 foraging 8
Activity 89 flying west 8
Activity 3176 microscopic examined 8
Activity 85 laying egg 8
Activity 87 flying south 8
Activity 3173 moved to another location 8
Activity 3205 resting 8
Activity 86 flying north 8
Activity 3133 silk nest 8
Activity 88 flying east 8
Activity 3068 collected 8
Activity 91 at sugar 8
Activity 3105 tracks 8
Activity 84 copula 8
Activity 3157 spawning 9
Activity 3255 basking in sun 9
Activity 37 spawn 9
Activity 3184 foraging 9
Activity 65 discovery (dead) 9
Activity 3142 observed snorkeling 9
Activity 80 hunting 9
Activity 38 caught (pole) 9
Activity 39 caught (net) 9
Activity 32 present 9
Activity 81 resting 9
Activity 3069 collected 9
Activity 2035 washed ashore 9
Activity 40 caught (electric fishing) 9
Activity 3256 unknown 9
Activity 3257 living animal 9
Activity 3147 sick/injured 9
Activity 58 caught (seine) 9
Activity 3160 flashlight night observation 9
Activity 3059 indigenous 10
Activity 3061 adventive 10
Activity 3262 unknown 10
Activity 2034 washed ashore 10
Activity 3263 parasitizing 10
Activity 3112 microscopic examined 10
Activity 3091 sown 10
Activity 3111 micros. ex. material present 10
Activity 3062 planted 10
Activity 41 present 10
Activity 3060 escaped 10
Activity 3070 collected 10
Activity 3159 farmed 11
Activity 3071 collected 11
Activity 59 present 11
Activity 3259 parasitizing 11
Activity 3258 unknown 11
Activity 3261 adventive 12
Activity 3072 collected 12
Activity 61 present 12
Activity 3260 unknown 12
Activity 62 spore-bearing 12
Activity 2010 present 13
Activity 2019 road kill 13
Activity 3073 collected 13
Activity 3215 singing 13
Activity 3214 adventive 13
Activity 3108 microscopic examined 13
Activity 2033 washed ashore 13
Activity 3190 foraging 13
Activity 3212 unknown 13
Activity 3110 copula 13
Activity 3213 parasitized 13
Activity 3217 in web 13
Activity 3211 basking in sun 13
Activity 3104 at sugar 13
Activity 2036 dead 13
Activity 3216 hibernating 13
Activity 3007 dead 14
Activity 3001 singing 14
Activity 3063 collection material 14
Activity 97 present 14
Activity 3003 road kill 14
Activity 3008 nest 14
Activity 3002 hibernating 14
Activity 3004 copula 14
Activity 3009 at light 14
Activity 3098 recorded with Bat detector 14
Activity 3010 at sugar 14
Activity 3224 unknown 14
Activity 3226 adventive 14
Activity 3225 parasitized 14
Activity 3005 laying egg 14
Activity 3223 basking in sun 14
Activity 3013 copula 15
Activity 3017 at light 15
Activity 3011 singing 15
Activity 3014 laying egg 15
Activity 3018 at sugar 15
Activity 98 present 15
Activity 3016 nest 15
Activity 3187 foraging 15
Activity 3019 road kill 15
Activity 3020 dead 15
Activity 3237 unknown 15
Activity 3236 basking in sun 15
Activity 3012 hibernating 15
Activity 3074 collected 15
Activity 3238 parasitized 15
Activity 3188 foraging 16
Activity 3220 flying 16
Activity 3221 on/in breeding substrate 16
Activity 3030 dead 16
Activity 3028 at sugar 16
Activity 3125 in pellet 16
Activity 3023 copula 16
Activity 94 present 16
Activity 3027 at light 16
Activity 3024 laying egg 16
Activity 3022 hibernating 16
Activity 3021 singing 16
Activity 3029 road kill 16
Activity 3219 unknown 16
Activity 3075 collected 16
Activity 3026 nest 16
Activity 3106 tracks 16
Activity 3218 basking in sun 16
Activity 3222 parasitized 16
Activity 95 present 17
Activity 3040 dead 17
Activity 3240 territorial 17
Activity 3247 adventive 17
Activity 3036 nest 17
Activity 3242 unknown 17
Activity 3246 swarming 17
Activity 3034 laying egg 17
Activity 3037 at light 17
Activity 3039 road kill 17
Activity 3031 singing 17
Activity 3032 hibernating 17
Activity 3239 basking in sun 17
Activity 3244 parasitizing 17
Activity 3241 nest building 17
Activity 3038 at sugar 17
Activity 3076 collected 17
Activity 3185 foraging 17
Activity 3243 parasitized 17
Activity 3033 copula 17
Activity 3042 hibernating 18
Activity 3047 at light 18
Activity 3041 singing 18
Activity 3228 window victim 18
Activity 3050 dead 18
Activity 3227 basking in sun 18
Activity 3077 collected 18
Activity 3232 swarming 18
Activity 3229 unknown 18
Activity 3186 foraging 18
Activity 3230 parasitized 18
Activity 96 present 18
Activity 3049 road kill 18
Activity 3043 copula 18
Activity 3046 nest 18
Activity 3048 at sugar 18
Activity 3044 laying egg 18
Activity 3231 parasitizing 18
Activity 3097 microscopic examined 18
Activity 3109 microscopic examined 19
Activity 3083 fruit-bearing 19
Activity 3085 washed ashore 19
Activity 3080 present 19
Activity 3086 indigenous 19
Activity 3084 sprouting 19
Activity 3081 flowering 19
Activity 3141 collected 19
Activity 3264 unknown 19
Activity 3161 dead 20
Activity 3248 basking in sun 20
Activity 3163 present 20
Activity 3169 landed by fisheries 20
Activity 3168 brought by men 20
Activity 3162 road kill 20
Activity 3171 unknown 20
Activity 3167 from deep earth-drilling 20
Activity 3166 autochtonous/living on the spot 20
Activity 3164 collected 20
Activity 3165 washed ashore 20
Activity 3249 parasitized 20
Activity 3170 on drifting object 20
Activity 3250 living animal 20
Activity 3178 non relevant 30
method 3 seen not counted 0
method 7 extrapolated 0
method 10 Abundance 0
method 6 estimated 0
method 1 unknown 0
method 2 real count 0
observation entered with 200 0
observation entered with 219 HALSBANDPARKIETEN_MET_TAG 0
observation entered with 324 PASSAGE_BATRACIENS 0
observation entered with 15 LIJNVLAK 0
observation entered with 204 NATNET 0
observation entered with 220 WINOBS 0
observation entered with 217 ARGUSVLINDER_TELWEEKEND 0
observation entered with 205 2013_JAAR_VAN_DE_PATRIJS 0
observation entered with 93 SPRINKHAAN_ATLAS_20112012 0
observation entered with 213 BRUINVIS_GEZIEN 0
observation entered with 55 PESTVOGELTELLING_2007 0
observation entered with 69 INVASIEVE_ZOMERGANZEN_TELLING_1415_JULI_2018 0
observation entered with 300 TREKTELLENORG 0
observation entered with 56 BEHEEROVEREENKOMSTEN_WEIDEVOGELS 0
observation entered with 1 LOSSE_WAARNEMING 0
observation entered with 212 VERSPREIDING_WESPVLINDERS 0
observation entered with 92 OBSMAPP 0
observation entered with 81 SPRINKHAAN_ATLAS_20112012 0
observation entered with 57 INVENTARISATIE_GEELGORS_2010 0
observation entered with 18 in herbarium 0
observation entered with 14 LOSSE_WAARNEMING 0
observation entered with 326 NEDERLAND_ZOEMT 0
observation entered with 76 KLAPEKSTERTELLING_20122013 0
observation entered with 62 PESTVOGELTELLING_2007 0
observation entered with 225 LIEVEHEERSBEESTJES_ATLAS_20152016 0
observation entered with 309 ENQUTE_ALYTE_ACCOUCHEUR_EN_WALLONIE 0
observation entered with 321 STEENUILENINVENTARISATIE_20182019 0
observation entered with 97 PIEGRICHE_GRISE_EN_HIVER 0
observation entered with 79 LIEVEHEERSBEESTJES 0
observation entered with 34 INVENTARISATIE_SLEEDOORNPAGE 0
observation entered with 70 PADDENSTOELEN_TELLING_2010 0
observation entered with 226 INVENTARISATIE_GRAUWE_KLAUWIER_VLAAMSBRABANT 0
observation entered with 31 GEBIEDSDEKKEND_INGEVOERD 0
observation entered with 58 KLAPEKSTERTELLLING_20092010 0
observation entered with 16 LOSSE_WAARNEMING 0
observation entered with 59 VOGELTREK_2010 0
observation entered with 94 WEBOBS_HTML5 0
observation entered with 323 TKT_NRW 0
observation entered with 61 RODE_LIJST_SOORTEN_DAGVLINDERS 0
observation entered with 78 PROYERCO_PACO 0
observation entered with 107 SOVON_AUTOCLUSTERING_MODULE 0
observation entered with 401 MEETNETTENBE 0
observation entered with 208 KLAPEKSTERTELLING_20132014 0
observation entered with 202 EEA_REFERENCEGRID_50 0
observation entered with 103 IFBL 0
observation entered with 27 KLAPEKSTERTELLING_20072008 0
observation entered with 230 EBBA2_COUNT 0
observation entered with 67 FLUITER_BONTE_VLIEGENVANGER_2010 0
observation entered with 75 KLAPEKSTERTELLING_20102011 0
observation entered with 109 VLEERMUIZEN_IN_VLAAMSBRABANT 0
observation entered with 24 VIA_WNPDA 0
observation entered with 318 KLAPEKSTERTELLING_20172018 0
observation entered with 8 LOSSE_WAARNEMING 0
observation entered with 41 NACHTVLINDERMEETNET 0
observation entered with 60 KLIMAATSOORTENPROJECT_JNM 0
observation entered with 104 IGN 0
observation entered with 17 LOSSE_WAARNEMING 0
observation entered with 306 RECHERCHE_DE_LHYPOLAIS_ICTRINE_DANS_LE_HAINAUT_OCCIDENTAL 0
observation entered with 311 KLAPEKSTERTELLING_20162017 0
observation entered with 96 ROOFVOGELTELLING_MERGUS 0
observation entered with 115 GREEK_500GRID 0
observation entered with 307 RIVIERROMBOUT_IN_NEDERLAND 0
observation entered with 50 WINTERTELLING_GRAUWE_GORS 0
observation entered with 113 REG_HYBRIDE_GANZEN 0
observation entered with 74 ROOFVOGEL_WINTERTELLING 0
observation entered with 222 RINSE_DATA 0
observation entered with 302 SPAIN_UTM 0
observation entered with 308 L_93_GRID 0
observation entered with 105 EUROPEAN_LADYBIRDS 0
observation entered with 106 BEKENWATCH 0
observation entered with 201 0
observation entered with 35 BROEDVOGELMONITORING_2010 0
observation entered with 112 PWN_VLINDERSTREEPLIJSTEN 0
observation entered with 400 NOORDZEE_API 0
observation entered with 207 DIEREN_ONDER_DE_WIELEN_20 0
observation entered with 40 MOBILE_PAGES 0
observation entered with 91 NESTBOX_PROJECT 0
observation entered with 48 KLAPEKSTERTELLLING_20092010 0
observation entered with 7 LOSSE_WAARNEMING 0
observation entered with 49 GEARS_OFFLINE 0
observation entered with 211 ORTHOPTERA_APP 0
observation entered with 223 KLAPEKSTERTELLING_20142015 0
observation entered with 114 RODE_LIJST_SOORTEN_DAGVLINDERS 0
observation entered with 12 LOSSE_WAARNEMING 0
observation entered with 101 UTM1 0
observation entered with 11 LOSSE_WAARNEMING 0
observation entered with 33 KLAPEKSTERTELLING_20082009 0
observation entered with 111 IWC counts 0
observation entered with 316 HIRONDELLES_ENTRE_MEUSE_ET_LESSE 0
observation entered with 215 GT_HIRONDELLES_DU_PARC_NATUREL_DES_PLAINES_DE_LESCAUT 0
observation entered with 80 SPRINKHAAN_ATLAS_20112012 0
observation entered with 13 LOSSE_WAARNEMING 0
observation entered with 66 VOORJAAR_STERNS_EN_MEEUWEN_2010 0
observation entered with 68 GROENE_GLAZENMAKER_EN_KRABBESCHEER 0
observation entered with 108 SLEEDOORNPAGE 0
observation entered with 216 BRUSSELS_BAT_MONITORING 0
observation entered with 214 FUIKVANGSTEN_AMFIBIEN 0
observation entered with 25 VIA_WNSMART 0
observation entered with 10 LOSSE_WAARNEMING 0
observation entered with 209 OOIEVAAR_TELLING_2015 0
observation entered with 327 OBSIDENTIFY_IDENTIFICATION 0
observation entered with 28 PESTVOGELTELLING_2008 0
observation entered with 304 BIJENRADAR 0
observation entered with 319 ROOFVOGEL_WINTERTELLING 0
observation entered with 71 PESTVOGELS_20102011 0
observation entered with 310 OBSERVATION_BASIC 0
observation entered with 45 IEPENPAGE 0
observation entered with 26 INGEVOERD_OP_KMHOK_NIVEAU 0
observation entered with 314 MIDDELSTE_BONTE_SPECHT_REGIO_LIEROUDE_SPOORWEG 0
observation entered with 221 VIA_LITE 0
observation entered with 206 WAARNEMINGEN_JUNIOR 0
observation entered with 218 GEOTAGGED_BY_FOTO 0
observation entered with 42 API 0
observation entered with 312 SLAKKENSCHIETER 0
observation entered with 72 AURINIA 0
observation entered with 117 PESTVOGELTELLING_20122013 0
observation entered with 20 MICROSCOPISCH_ONDERZOCHT 0
observation entered with 224 GLIMWORMEN_IN_BELGI 0
observation entered with 77 GT_BUSARDS_TEST 0
observation entered with 90 COPIED_OBSERVATION 0
observation entered with 305 HIRONDELLE_DE_FENTRE_NAMUR 0
observation entered with 44 ROSSE_VLEERMUIS_PROJECT 0
observation entered with 2 MEERDERE_WAARNEMINGEN 0
observation entered with 32 PPS_PROJECT 0
observation entered with 322 QDGC_GRID 0
observation entered with 325 0
observation entered with 313 MIDDELSTE_BONTE_SPECHT_REGIO_LIEROUDE_SPOORWEG 0
observation entered with 23 IN_HERBARIUMMICROSCOPISCH_ONDERZOCHT 0
observation entered with 329 EBIRD_IMPORT 0
observation entered with 110 XX 0
observation entered with 22 IN_HERBARIUMMICROSCOPISCH_ONDERZOCHT 0
observation entered with 29 PESTVOGELTELLING_2007 0
observation entered with 100 UURHOK 0
observation entered with 95 KLAPEKSTERTELLING_20112012 0
observation entered with 63 PESTVOGELTELLING_2006 0
observation entered with 102 IFBLUUR 0
observation entered with 3 INVENTARISATIE 0
observation entered with 30 PESTVOGELTELLING_2006 0
observation entered with 46 TELLINGEN_ZOMERGANZEN 0
observation entered with 303 EGELWAARNEMINGEN 0
observation entered with 301 OOIEVAARTELLING_2017 0
observation entered with 320 OOIEVAAR_TELLING_2018 0
observation entered with 203 WAT_VANGT_DE_KAT 0
observation entered with 328 KLAPEKSTERTELLING_20182019 0
observation entered with 210 IOBS 0
observation entered with 9 LOSSE_WAARNEMING 0
observation entered with 317 FLORE_REMARQUABLE_DES_RSERVES 0
observation entered with 21 MICROSCOPISCH_ONDERZOCHT 0
observation entered with 73 test 0
observation entered with 82 MIBO_KORTSNAVELS 0
observation entered with 116 KLAPEKSTERTELLING_20122013 0
observation entered with 19 in herbarium 0
observation entered with 47 ZOOGDIERTELLING_BE 0
observation entered with 65 PACO 0
observation entered with 64 GEVLEKTE_GLANSLIBEL_20092010 0
observation entered with 231 KLAPEKSTER_TELLING_20152016 0
observation entered with 315 PROJECTWAARNEMING 0
plumage 1009 nestling 1
plumage 5 juvenile 1
plumage 72 fourth calendar year 1
plumage 3 adult breeding 1
plumage 15 second calendar year 1
plumage 7 first autumn 1
plumage 14 first calendar year 1
plumage 13 first year 1
plumage 1 unknown 1
plumage 6 subadult 1
plumage 8 first winter 1
plumage 1101 summer plumage 1
plumage 9 first summer 1
plumage 12 eclipse 1
plumage 2 adult 1
plumage 4 adult non-breeding 1
plumage 16 third calendar year 1
plumage 11 second summer 1
plumage 10 second winter 1
plumage 1010 immature 1
plumage 1102 winter plumage 1
plumage 62 third-winter 1
plumage 86 deviant 1
plumage 1132 fossile 2
plumage 17 unknown 2
plumage 1002 subadult 2
plumage 97 deviant 2
plumage 1005 winter plumage 2
plumage 20 adult 2
plumage 27 juvenile 2
plumage 1004 summer plumage 2
plumage 21 adult 3
plumage 1136 neoteen 3
plumage 88 deviant 3
plumage 74 larvae 3
plumage 18 unknown 3
plumage 1137 metamorphosing 3
plumage 73 subadult 3
plumage 71 juvenile 3
plumage 24 egg 3
plumage 1094 molt pollicle 3
plumage 1138 adult in breeding colours 3
plumage 26 pupa 4
plumage 29 imago 4
plumage 66 egg 4
plumage 89 deviant 4
plumage 19 unknown 4
plumage 23 caterpillar 4
plumage 36 unknown 5
plumage 41 nymph 5
plumage 75 fresh imago 5
plumage 1116 prolarva 5
plumage 1104 egg 5
plumage 131 exuviae 5
plumage 1087 deviant 5
plumage 37 imago 5
plumage 52 larva/nymph 6
plumage 98 imago micropteer 6
plumage 1140 imago brachypteer 6
plumage 57 queen 6
plumage 56 egg 6
plumage 54 imago macropteer 6
plumage 49 exuviae 6
plumage 48 larvae 6
plumage 77 molt pollicle 6
plumage 47 imago 6
plumage 1084 pupa 6
plumage 58 worker 6
plumage 46 unknown 6
plumage 1003 gall 6
plumage 1093 subimago 6
plumage 1141 exuviae 6
plumage 90 deviant 6
plumage 109 mine 6
plumage 1108 shield (cuttle-fish, squid) 7
plumage 1111 egg(mass) 7
plumage 91 deviant 7
plumage 1105 gall 7
plumage 70 internal skeleton 7
plumage 1090 fossile 7
plumage 65 empty shell or single valve 7
plumage 69 adult 7
plumage 1107 shell with (remainders of) animal 7
plumage 68 immature 7
plumage 1106 living animal 7
plumage 67 fresh double valves 7
plumage 64 unknown 7
plumage 102 pupa 8
plumage 106 egg 8
plumage 1139 cocoon 8
plumage 1007 gall 8
plumage 101 caterpillar 8
plumage 108 mine 8
plumage 105 pocket/case 8
plumage 92 unknown 8
plumage 103 imago 8
plumage 1134 deviant 8
plumage 1115 length unknown 9
plumage 1110 egg 9
plumage 28 unknown 9
plumage 116 length >40cm 9
plumage 115 length 25 to 40cm 9
plumage 112 length 5 to 10cm 9
plumage 111 length 3 to 5cm 9
plumage 93 deviant 9
plumage 110 length <3cm 9
plumage 114 length 15 to 25cm 9
plumage 78 juvenile 9
plumage 113 length 10 to 15cm 9
plumage 79 adult 9
plumage 1152 larvae 9
plumage 35 unknown 10
plumage 1103 seedling 10
plumage 1169 gall 10
plumage 1098 fruit-bearing 10
plumage 1168 empty fruits 10
plumage 1100 sprouting 10
plumage 1166 spore-bearing 10
plumage 1099 died above ground 10
plumage 1096 flowering 10
plumage 1095 vegetative 10
plumage 1167 rosette 10
plumage 1135 in bud 10
plumage 94 deviant 10
plumage 1114 gall 11
plumage 1157 spermogonium 11
plumage 1156 teleomorph 11
plumage 1085 unknown 11
plumage 1160 telium 11
plumage 95 deviant 11
plumage 81 herbarium material present 11
plumage 1161 remains from old fruiting body 11
plumage 1159 uredinium 11
plumage 1155 anamorph 11
plumage 1158 aecium 11
plumage 1162 other 11
plumage 1154 mycelium 11
plumage 82 micros. ex. material present 11
plumage 60 unknown 11
plumage 80 microscopic examined 11
plumage 1153 fruiting body 11
plumage 1163 vegetative 12
plumage 96 deviant 12
plumage 1164 propagule 12
plumage 84 herbarium material present 12
plumage 83 microscopic examined 12
plumage 1165 spore-bearing 12
plumage 61 unknown 12
plumage 1131 unknown 12
plumage 85 micros. ex. material present 12
plumage 119 imago 13
plumage 127 worker 13
plumage 126 queen 13
plumage 120 larvae 13
plumage 1145 type 1 (sexual active) 13
plumage 1144 young bearing (external) 13
plumage 122 molt pollicle 13
plumage 128 deviant 13
plumage 125 imago macropteer 13
plumage 1146 type 2 (sexual active) 13
plumage 129 imago micropteer 13
plumage 1006 gall 13
plumage 1142 subadult 13
plumage 130 mine 13
plumage 118 unknown 13
plumage 121 exuviae 13
plumage 124 egg 13
plumage 1143 egg bearing (external) 13
plumage 123 nymph 13
plumage 1021 larvae 14
plumage 1020 nymph 14
plumage 1023 adult, freshly moulted 14
plumage 1022 exuviae 14
plumage 1012 deviant 14
plumage 1014 imago 14
plumage 1013 egg 14
plumage 1088 imago macropteer 14
plumage 1011 unknown 14
plumage 1086 gynandromorph 14
plumage 1015 imago brachypteer 14
plumage 1028 imago 15
plumage 1029 imago macropteer 15
plumage 1038 molt pollicle 15
plumage 1034 larva/nymph 15
plumage 1036 exuviae 15
plumage 1025 unknown 15
plumage 1149 exuviae 15
plumage 1031 imago micropteer 15
plumage 1033 worker 15
plumage 1030 gall 15
plumage 1150 imago brachypteer 15
plumage 1035 larvae 15
plumage 1032 queen 15
plumage 1026 deviant 15
plumage 1037 mine 15
plumage 1027 egg 15
plumage 1039 unknown 16
plumage 1040 deviant 16
plumage 1051 mine 16
plumage 1043 imago macropteer 16
plumage 1147 imago brachypteer 16
plumage 1148 exuviae 16
plumage 1047 worker 16
plumage 1049 larvae 16
plumage 1046 queen 16
plumage 1042 imago 16
plumage 1048 larva/nymph 16
plumage 1044 gall 16
plumage 1052 molt pollicle 16
plumage 1089 pupa 16
plumage 1041 egg 16
plumage 1050 exuviae 16
plumage 1045 imago micropteer 16
plumage 1056 imago 17
plumage 1054 deviant 17
plumage 1062 larva/nymph 17
plumage 1081 gyne (winged) 17
plumage 1059 imago brachypteer 17
plumage 1151 fresh imago 17
plumage 1055 egg 17
plumage 1060 queen 17
plumage 1061 worker 17
plumage 1053 unknown 17
plumage 1066 molt pollicle 17
plumage 1063 larvae 17
plumage 1065 mine 17
plumage 1064 exuviae 17
plumage 1117 pupa 17
plumage 1058 gall 17
plumage 1057 imago macropteer 17
plumage 1082 gyne (unwinged) 17
plumage 1071 imago macropteer 18
plumage 1070 imago 18
plumage 1076 larva/nymph 18
plumage 1078 exuviae 18
plumage 1080 molt pollicle 18
plumage 1079 mine 18
plumage 1083 pupa 18
plumage 1069 egg 18
plumage 1068 deviant 18
plumage 1073 imago micropteer 18
plumage 1067 unknown 18
plumage 1075 worker 18
plumage 1072 gall 18
plumage 1074 queen 18
plumage 1077 larvae 18
plumage 1112 vegetative 19
plumage 1170 flowering 19
plumage 1092 deviant 19
plumage 1113 spore-bearing 19
plumage 1091 unknown 19
plumage 1171 fruit-bearing 19
plumage 1130 egg(mass) 20
plumage 1121 deviant 20
plumage 1126 fresh double valves 20
plumage 1127 living animal 20
plumage 1129 shield (cuttle-fish, squid) 20
plumage 1123 empty shell or single valve 20
plumage 1125 internal skeleton 20
plumage 1119 juvenile 20
plumage 1118 unknown 20
plumage 1128 shell with (remainders of) animal 20
plumage 1124 fossile 20
plumage 1122 gall 20
plumage 1120 adult 20
plumage 1133 non relevant 30
Protocol 3000 12.205 UNIFORME WERKWIJZE MONITORING NATUURNETWERK (SNL) 0
Protocol 1 casual record 0
Protocol 2 complete area search 0
species group 1 Birds 1
species group 2 Mammals 2
species group 3 Reptiles and Amphibians 3
species group 4 Butterflies 4
species group 5 Dragonflies 5
species group 6 Insects (other) 6
species group 7 Molluscs 7
species group 8 Moths 8
species group 9 Fish 9
species group 10 Plants 10
species group 11 Mushrooms 11
species group 12 Mosses and Lichens 12
species group 13 Other Arthropods (Arthropoda) 13
species group 14 Locusts and Crickets (Orthoptera) 14
species group 15 Bugs, Plant Lice and Cicadas 15
species group 16 Beetles 16
species group 17 Hymenoptera 17
species group 18 Diptera 18
species group 19 Algae, Seaweeds and other unicellular organisms 19
species group 20 Other Invertebrates 20
species group 30 Disturbances 30
Status N Not approved 0
Status J approved 0
Status O not investigated 0
Status I Review in progress 0
Status U Cannot be validated (yet) 0
Status A Approved, based on knowledge rules 0

Did you know that data from iNaturalist has been used in more than 450 publications? Your support helps create biodiversity data for science.
GIVE MONTHLY

https://www.inaturalist.org/observations/compare
https://forum.inaturalist.org/t/easy-way-to-compare-lists/1707

Posted on December 08, 2019 22:29 by ahospers ahospers | 0 comments | Leave a comment

November 16, 2019

Funding, Infrastructure costs, Images on Amazon

Thanks for your thoughtful consideration of the kinds of nonprofits you support.

For the last three years, iNaturalist has been almost entirely grant funded from individual philanthropists (many with a long history of philanthropy through the California Academy of Sciences), the National Geographic Society, foundations such as the Moore Foundation, and tech companies such as Microsoft through their tAI for Earth initiative, and Google through their tGeo for Good initiative. We also have some project-based funding like the funds we received from the World Wildlife Fund to develop Seek 2.0.

While individual donations from the iNaturalist community currently constitute a small percentage of our overall revenue, we’d love to see that percentage grow. The more sustaining donors we have, the less time we and the development team at CAS have to spend wondering how to meet the next year’s budget requirements.

As a department of the California Academy of Sciences, 15% of additional funds we bring in go toward overhead for CalAcademy, and this includes individual donations. In addition to financial support, they provide office space, legal services, accounting, communications support, and other functions, so the overhead is a way that iNaturalist pays into those costs shared across the institution. The remaining 85% stays within the department to cover staff and operational expenses, like paying Discourse to host this forum, or paying Amazon for image hosting.

The single largest expense for iNaturalist is personnel. iNaturalist has 8 full-time staff in the USA (6 in the Bay Area, 2 remote on the East Coast) and one contractor.

For the CalAcademy fiscal year July 2018 - June 2019, iNaturalist spent $174,000 on infrastructure and miscellaneous expenses. These are the non-personnel related expenses. Like almost everything else about iNaturalist (e.g. users, data, traffic)—except the number of staff— these costs are almost doubling each year.

Donating to iNaturalist 1 (or not) is of course a personal choice. We hope this helps inform your decision. We understand that users have different means and appreciate all of the many ways that people support iNaturalist, financial or otherwise.

Posted on November 16, 2019 21:36 by ahospers ahospers | 2 comments | Leave a comment

November 15, 2019

Swift libraries remove Restkit, the third-party library

I agree that it’s a bummer when features are pulled, but please understand that I did this for a very good reason. iOS 13 deprecated a number of older developer libraries, and the third-party library we were using to do multi-photo selection was hit hard. It was causing significant amounts of instability, crashes in the app in unpredictable ways, etc. In order to bring multi-photo selection back, I’m either going to have to re-implement that whole library, or find a new third-party library. Both will take time, and are further complicated by the fact that we can’t use Swift libraries in the iOS app right now, since one of the other third-party libraries we’re using (RestKit) won’t compile with Swift. I’ve been working on removing this problematic library for a while now, but it’s slow going because we use it a ton.

So my plan is to keep working to remove Restkit, the third-party library that won’t compile with Swift, so that in the future I’ll be able to choose from the vast menu of Swift libraries that do camera/photo library picker stuff, with lots of support for multi-photo selection.

Posted on November 15, 2019 20:36 by ahospers ahospers | 2 comments | Leave a comment

November 10, 2019

how many map tiles we generate per minute over

https://forum.inaturalist.org/t/open-test-of-map-tile-improvements/7833

Here’s a chart that shows how many map tiles we generate per minute over the last day (times are in EST). As shown here we’re generating up to about 3000 tiles per minute, or 50 tiles per second. We’re also entering a slower time of year, so during busy months and certainly during events, we render much more than that. For reference, across all iNaturalist and partner websites, the API, and tiles, we process about 15,000 requests per minute (250/sec) right now, which means map tiles represent about 20% of all traffic.

h has me wondering if we need colour to distinguish kingdoms? Why not instead use colour to indicate density from sold blue for single obs to solid red for the highest density, then it will be a heat map similar to this:
ing relatively small squares. in the case of the new test squares, since the squares are relatively large (the tradeoff for clickability and speed of processing), i think a color gradient approach will look bad. below are examples that may help to show what i mean. these examples are using 4px x 4px squares, which are smaller than 8px x 8px squares, but are already clouding up the map. (they use a different color gradient than your example, but they are using iNat data, though probably are scaled a little differently than the test
https://forum.inaturalist.org/t/observation-density/6305/6
(compare the above examples to this: https://forum.inaturalist.org/t/observation-density/6305/6 1, which is a density map from GBIF using iNat data at very fine resolution – very beautiful, in my opinion, but very resource intensive to create and not clickable.)

https://forum.inaturalist.org/t/open-test-of-map-tile-improvements/7833

https://forum.inaturalist.org/t/looking-for-inaturalist-observation-map-visualisation-suggestions/7322/17

https://forum.inaturalist.org/t/cache-map-data-to-speed-up-loading-and-reduce-demand-on-inat-servers/7767/8

https://forum.inaturalist.org/t/how-do-i-find-topics-that-ive-responded-to/7677/3
Good to know that it existst but a bit hard to find…THis forum software is so weird. BlockquoteYou can also go to your profile and under Activity, click Replies: https://forum.inaturalist.org/u/oneanttofew/activity/replies

You can also go to your profile and under Activity, click Replies: https://forum.inaturalist.org/u/oneanttofew/activity/replies

Posted on November 10, 2019 10:47 by ahospers ahospers | 0 comments | Leave a comment

October 30, 2019

looking-for-inaturalist-observation-map-visualisation-suggestions

https://forum.inaturalist.org/t/looking-for-inaturalist-observation-map-visualisation-suggestions/7322/11

the api.inat.org and api.gbif.org URLs above won’t actually take you anywhere. but they do provide a GIS tool – in this case, ArcGIS Online – the instructions needed to get map tiles from iNat and GBIF.

you may have noticed that when you load many online maps, they get rendered a section or a tile at a time, not all at once. as you pan beyond the original extent of the map, new sections or tiles get loaded and added to the map. as you zoom in and out, new tiles get loaded to provide a better representation of the map at the given zoom level.

you’ll notice in the tile URLs i provided above, they all contain a {level}, a {col}, and a {row}. ArcGIS will dynamically replace these with a zoom level, an x value (or column index), and a y value (or row index). that tells the API to return a map tile that represents a particular section of the Earth at a given zoom level. when the API provides ArcGIS that tile (usually a picture file – in these cases, all *.png files), ArcGIS puts that tile on the appropriate place in the map, along with all the other tiles needed to fully display the map.

here’s how you can create a map with one of these tilesets in ArcGIS Online:

go to https://www.arcgis.com 1
at the top of the screen, find Maps, and click on it. (you don’t have to sign in.)
that should get you to a screen with a blank map. at the top right of that screen, click Modify Map.
that wll add some editing options to the toolbar below. find Add in that tool bar (on the left side of the screen), and click on that, then select “Add Layer from Web” from the drop list.
that will give you a pop up. in that pop-up, select “A Tile Layer”, then fill in the URL (using one of the URLs i provided before), a title for it (which is what show up in the left Contents pane in the screenshots), and credits (which is what shows up in the bottom right corner of the map in the screenshots). then click Add Layer.
finally, you may want to use a basemap that is less busy than the default topo basemap. you can either select one by clicking the Basemap button in the map toolbar, or searching for one via Add > Search for Layer. (ArcGIS has lots of layers available.)
if you don’t like ArcGIS, you can also do something similar in other GIS tools. the specific steps will differ, of course, but the concept is the same. (the URLs may differ in the other tools, too. for example, QGIS and Leaflet.js expect {z}, {x}, and {y} in the URL instead of {level}, {col}, and {row}.)

hope that helps. if you have other questions, feel free to ask.

also note there are a few more advanced things that can be done. for example, you can use different tilesets for different zoom level ranges. so for example, the hexagons that GBIF provides may look okay at that size in my example at a continent level, but they might look too much like points at a higher (more granular zoom level). so you might choose to use relatively bigger hexagons at higher zoom levels by changing the hexPerTile value in the URL (smaller values result in bigger hexagons in this case). you can also modify the transparency of the tiles within your particular GIS tool.

2

Reply

pisum
1
8d
it occurred to me last night / this morning that i could probably take the results from the UTFGrid tiles that the iNaturalist API serves up and use them to create my own custom observation maps. so when i got some time this evening, i tried to create my own custom map based on UTFGrid data, and it actually worked out better than i expected. i think UTFGrids might be a little less precise, but they are much more customizable than either iNat’s standard observation tiles or GBIF’s tiles, and they offer all the query options that iNat provides. below is an example of all observations from iNat. i compared it against another map i created from GBIF (https://forum.inaturalist.org/t/observation-density/6305/6), and it looks similar (which is good from a data quality perspective). i’ll probably work on it a little bit more when i get time just for fun, but if anyone is interested in it, i’ll clean it up a little bit more and can share the code when it’s more functional.

tbd%20utfgrid%20alternative%20implementation
tbd utfgrid alternative implementation.jpg
1534×1330 133 KB
UPDATE: i was doing some more sanity checks on the data before i got too far down the road of coding something that turned out later to be flawed – so far, things look ok – and i just wanted to share some more maps that i thought were interesting.

here’s a map that shows observations over the last 4 years (r=2019, y=2018, g=2017, b=2016, brightest dots represent at least 20k observations). you can sort of see how iNat usage is spreading across the world:
tbd%20obs%20by%20year%20r2019%20y2018%20g2017%20b2016%20max20000
tbd obs by year r2019 y2018 g2017 b2016 max20000.jpg
1535×790 102 KB
this map shows observations over the last 4 months (r=Oct, y=Sept, g=Aug, b=July, brightest dots represent at least 2500 observations):
tbd%20obs%20by%202019%20month%20r10%20y9%20g8%20b7%20max2500
tbd obs by 2019 month r10 y9 g8 b7 max2500.jpg
1536×785 120 KB
this map shows observations Monarchs over the last 4 months (r=Oct, y=Sept, g=Aug, b=July, brightest dots represent at least 25 observations). you can sort of see a shift in observations over these months related to migration:

https://forum.inaturalist.org/t/looking-for-inaturalist-observation-map-visualisation-suggestions/7322/11

k… i’ve been coding a bit, and i’m at a point of diminishing returns for further coding, i think. i didn’t get to the point of producing a mapping interface, but the code is here (https://github.com/jumear/stirfry/blob/gh-pages/iNat_UTFgrid_based_custom_density_map.html 2), and hopefully it’s relatively easy to understand and tinker with. you’re welcome to adapt it as you please.

here are some examples of different custom maps i created using the UTFgrids:
https://jumear.github.io/stirfry/iNat_UTFgrid_based_custom_density_map.html?example=1 2
https://jumear.github.io/stirfry/iNat_UTFgrid_based_custom_density_map.html?example=2 1
https://jumear.github.io/stirfry/iNat_UTFgrid_based_custom_density_map.html?example=3 1
https://jumear.github.io/stirfry/iNat_UTFgrid_based_custom_density_map.html?example=4 1
https://jumear.github.io/stirfry/iNat_UTFgrid_based_custom_density_map.html?example=5 1
https://jumear.github.io/stirfry/iNat_UTFgrid_based_custom_density_map.html?example=6 1
https://jumear.github.io/stirfry/iNat_UTFgrid_based_custom_density_map.html?example=7 1
https://jumear.github.io/stirfry/iNat_UTFgrid_based_custom_density_map.html?example=8 1
https://jumear.github.io/stirfry/iNat_UTFgrid_based_custom_density_map.html?example=9 1

UPDATE:

one last contribution here: https://jumear.github.io/stirfry/iNat_UTFgrid_based_density_map_for_Leaflet.html
(code: https://github.com/jumear/stirfry/blob/gh-pages/iNat_UTFgrid_based_density_map_for_Leaflet.html)

the previous examples were built in a static map viewer that i cobbled together. but this new example is built as an extension of Leaflet.js. so it might be easier to tinker with for those who are familiar with Leaflet.js, and this example is also easier for exploration since you can pan and zoom. the markers are also created a little differently here, in a way that is less resource intensive but is a little less flexible (tradeoffs).

that’s it for now.

hmm… if you’re trying to do heatmaps, then you should try the tilesets served up by iNat 1 and GBIF 1, if you haven’t already.

iNaturalist’s tiles are a little bit uglier in most cases (in my opinion), but they can be set to any color using the color parameter. GBIF’s tiles look a little better (in my opinion), and the polygon tilesets in particular offer lots of options for formatting, though there are fewer color options available.

here are 4 quick examples of observation tilesets for Diloma concameratum (Wavy Top) that i pulled up in ArcGIS Online over a dark basemap (each snapshot is preceded by the tileset URL i used for that layer):

https://api.gbif.org/v2/map/occurrence/density/{level}/{col}/{row}@1x.png?srs=EPSG:3857&style=orange.marker&taxonKey=5797922 2
tbd%20heatmap%20gbif%20marker
tbd heatmap gbif marker.jpg
1236×957 117 KB
https://api.gbif.org/v2/map/occurrence/density/{level}/{col}/{row}@1x.png?srs=EPSG:3857&style=iNaturalist.poly&taxonKey=5797922&bin=hex&hexPerTile=16 2
tbd%20heat%20gbif%20hex%2016
tbd heat gbif hex 16.jpg
1236×957 120 KB
https://api.inaturalist.org/v1/heatmap/{level}/{col}/{row}.png?color=orange&taxon_id=861925 1
tbd%20heatmap%20inat%20heat
tbd heatmap inat heat.jpg
1236×957 111 KB
https://api.inaturalist.org/v1/colored_heatmap/{level}/{col}/{row}.png?color=purple&taxon_id=861925

Posted on October 30, 2019 21:24 by ahospers ahospers | 2 comments | Leave a comment

August 23, 2019

Analysing iNat data

While I haven’t done it with iNaturalist data, if you are trying to start doing data analysis on large datasets I suggest learning some python. Packages in python such as Numpy, Pandas, Scipy, Scikit-learn and Matplotlib go awfully far for data analysis.

I suspect it is possible to use pyinaturalist 3 and the API reference 1 for getting data out of iNaturalist as well, but it seems like you were already able to extract to excel already. https://pypi.org/project/pyinaturalist/ https://www.inaturalist.org/pages/api+reference Data analysis and visualization is really a field of its own. There are many different software applications, like R, python, etc, but you really need to have a working knowledge of these programming languages. If you’re only familiar with Excel, that might be the best place to start. There are not any programs specifically for easily working with iNat data.

https://forum.inaturalist.org/t/analysing-inat-data/6001/3

https://pypi.org/project/pyinaturalist/

https://www.inaturalist.org/pages/api+reference

?interpolate_coordinates=true

Find observations missing a location
https://www.inaturalist.org/observations?quality_grade=any&place_id=any&not_in_place=91708,97391&user_id=ahospers&verifiable=any works!

But there is still a huge need for classical projects: i.e. projects to which observations are manually added, or added by virtue of observation fields that are required. To my mind these are "tagged" projects. (in iNat logic one traditionally "added observations to projects", but for similar projects on iSpot we added tags and created projects to filter on the tags - the net effect is the same, a lookup table of project-tag and observation, that can be used as a filter - either alone or with other filters).
The addition of a project-tag filter to the new projects will make the "traditional" projects into "collection type" projects too, while preserving the Project Icons on the observations.
((the additional functionality of defining observation fields from within a project is an extremely useful feature.))

A nitpick: is the central filter a Location filter (using google places) or a Place filter (using user-created iNat polygons) or both? It would help if the terminology was standardized with the observations pages and its filters.

?interpolate_coordinates=true

photos/?advanced=on

Here's the link for creating a traditional project: https://www.inaturalist.org/projects/new_traditional

Posted on August 23, 2019 14:55 by ahospers ahospers | 0 comments | Leave a comment

August 17, 2019

KNNV Drielanden Lepidoptera night (Trip)

KNNV Nachtvlinder nacht

https://www.inaturalist.org/identifications?user_id=juliereid 3

Other parameters you can add:

&taxon_id=1234
&category=maverick|supporting|improving|leading Default: any
&current=false|any Default: true
&for=self|others|any Default: any
?interpolate_coordinates=true

Find observations missing a location
https://www.inaturalist.org/observations?quality_grade=any&place_id=any&not_in_place=91708,97391&user_id=ahospers&verifiable=any works!

https://www.inaturalist.org/identifications?user_id=juliereid&for=others
You can play with the other parameters, as well – adding different &PARAMETER=SETTING options. Choose between options separated by the “|”. It’s safe; you shouldn’t be able to break anything, just get

But there is still a huge need for classical projects: i.e. projects to which observations are manually added, or added by virtue of observation fields that are required. To my mind these are "tagged" projects. (in iNat logic one traditionally "added observations to projects", but for similar projects on iSpot we added tags and created projects to filter on the tags - the net effect is the same, a lookup table of project-tag and observation, that can be used as a filter - either alone or with other filters).
The addition of a project-tag filter to the new projects will make the "traditional" projects into "collection type" projects too, while preserving the Project Icons on the observations.
((the additional functionality of defining observation fields from within a project is an extremely useful feature.))

A nitpick: is the central filter a Location filter (using google places) or a Place filter (using user-created iNat polygons) or both? It would help if the terminology was standardized with the observations pages and its filters.

Posted on August 17, 2019 22:54 by ahospers ahospers | 2 comments | Leave a comment