Archivos de diario de octubre 2018

02 de octubre de 2018

11. Organisms have "common names" in spoken languages

Most categories of organisms have "common names" in spoken languages. These names are usually recognizable, easy to pronounce, and stable over time, but many organisms have several different names in different places, even in the same language, which can make it difficult to communicate about these organisms without confusion. Scientists address this problem by using a single "scientific name" for each category of organism that conforms to the rules of biological nomenclature, but these names tend to be based on Latin, a language nobody speaks, so they are not as memorable as common names for many people. Scientific names can also reflect an organism's taxonomic placement, so they can change when scientists develop more accurate theories about the evolutionary relationships between different organisms, again reducing their usefulness in communication, even among people who know scientific names.

The old adage sums it up: "Common names change from place to place, and scientific names change from time to time."

We try to address these shortcomings by showing both common and scientific names wherever possible, and choosing common names based on the language and geographic preferences of the viewer.

https://www.inaturalist.org/subscriptions?type=observation

https://www.inaturalist.org/blog/15450-announcing-changes-to-projects-on-inaturalist
https://www.inaturalist.org/journal/ahospers/45530-66-relaties-tussen-organismes-aangeven-door-add-test-interactions

test=interactions

66. Interactions, Relaties, Verbondheid

more details here: https://forum.inaturalist.org/t/add-interactions-to-species-pages/433/16 here are many ways. Have a look at
https://www.inaturalist.org/search?q=interactions&source%5B%5D=projects

Now a lot depends on your philosophy.

For instance you can just add an interaction (one of the many fields): and name the other side of the interaction.
But that assumes that you know the other organism, and that if you have it wrong you will fix it, and that if the name changes taxonomically, then you will fix it.

see https://www.inaturalist.org/projects/specific-animal-plant-interactions

My philosophy is that you put both as observations and then link them: that way the community takes care of the identifications, and the link will remain no matter what.
If you follow my philosophy look at:
https://www.inaturalist.org/projects/interactions-s-afr

How can we get this higher up the “desired” list of features?
Both the New Zealanders and southern Africans have projects dealing with this.
Ours is visible at https://www.inaturalist.org/projects/interactions-s-afr 4

Basically, we record only the active interaction (i.e. “a eats b”, not “b is eaten by a” - the latter just being the reciprocal of the first), although user pressure has resulted in us adding a passive field for the reciprocal observation, given that observations fields link only one way, so that these observations do not display their hosts) as:

Visiting flowers: https://www.inaturalist.org/observations?field:Visiting%20a%20flower%20of:%20(Interaction) 6
Eating: https://www.inaturalist.org/observations?field:Eating:%20(Interaction) 5
Parasitizing: https://www.inaturalist.org/observations?field:Parasitizing:%20(Interaction) 1
Attached to: https://www.inaturalist.org/observations?field:attached%20to:%20(Interaction)
Carrying: https://www.inaturalist.org/observations?field:Carrying:%20(Interaction) 1
Associated with: https://www.inaturalist.org/observations?field:Associated%20with:%20(Interaction)
& the passive
https://www.inaturalist.org/observations?field:Passive%20Partner%20to:%20(Interaction)

Note that in each case the field value is the url of the interacting observation. Unfortunately we cannot use this is a query to summarize the interactions.
We can ask
“What flowers does the Cape Sugarbird Visit?” - https://www.inaturalist.org/observations?place_id=113055&subview=grid&taxon_id=13442&field:Visiting%20a%20flower%20of:%20(Interaction)= 3
but we will only see the bird, and not the flowers, even though all the urls to the flowers are in the field - see: https://www.inaturalist.org/observation_fields/7459 2.

In over 5 years of using this “set” of interactions, we have never had a request to add additional interactions (e.g. Eating = preys on = killing to eat - i.e. “killing for fun” has not cropped up), although it would be nice to have a hierarchical dictionary of interactions (e.g. visiting a flower > pollinating a flower (> for nectar, pollen, oil, gum)/robbing a flower/, etc

I’m happy to leave the test=interactions thing available, I’m just not going to make it visible by default or integrate it into the UI. I don’t think we need to ice this topic, as I think the title sums up what we want pretty well. Personally, I think the Feature Requests category is a way to gauge what kinds of things people are interested in, and not necessarily specific implementation plans, so it’s valuable to me to know how many people chose to upvote this. In fact, I will spend one of my votes on it right now

plant Lantana camara apparently “visits flowers of” 46 species of insects, rather than the other way around https://www.inaturalist.org/taxa/50333-Lantana-camara?test=interactions 13). Is it a functionality you can leave available, or are there reasons not to do so?

We investigated this when we redesigned the taxon page in 2016 (yikes, that was a while ago). I just made it so you can see what we did by appending test=interactions to any taxon page URL, and I’ll use examples to explain why we didn’t develop this any further.

The big problem looming over this whole feature is that observation fields are a bad way to model interactions. Since they represent a totally uncontrolled vocabulary, they’re rife with synonymous fields, so it’s hard interpret situations where, for example, there are both eats and preys on interactions, e.g. https://www.inaturalist.org/taxa/117520-Enhydra-lutris-nereis?test=interactions 28. What’s the difference? Why are both supported?

Another problem is that using observation fields to model interactions means that one of the two taxa in the interaction is not subject to crowdsourced identification, so anyone can say that oaks eat humans and there’s nothing the community can do to correct that. As an example, here’s a butterfly that supposedly eats itself: https://www.inaturalist.org/taxa/51097-Papilio-zelicaon?test=interactions 16. It doesn’t, this is just due to an erroneously added observation field. Site curators could just delete this field, but that’s generally not how we like to perform quality control at iNat.

On top of that, we really wanted to incorporate data from GLoBI 12, since we like them and we think it’s cool that they incorporate iNat interaction data, but mapping taxonomies and field semantics proved a hassle, and again it presents the problem of data that the iNat community can’t correct if they find errors.

What we’d like to do is to make a new feature for interactions where an interaction is a relationship between two observations with clear and controlled semantics (to the extent that that’s possible). So instead adding an obs field that says an obs of an oak represents that oak eating a human, you would create an interaction and have to choose two observations, one of an oak and another of a human, and choose “eating” from a menu of interaction types where “eating” means “taxon A is putting all or part of taxon B inside its body for the purpose of personal metabolism” or something. Other users could then vote on whether that was the correct interaction type, and the two observations could be independently identified. We could try and pre-populate this new kind of data with observation fields, or at least make a tool that helps people review their own interaction obs fields to make new-style interactions out of them. That’s a lot more work, though, and it hasn’t really been a priority, so we haven’t gotten around to it.

Anyway, that’s a long way of saying that I agree this would be cool, but doing it right will take considerable effo

Ingresado el 02 de octubre de 2018 por ahospers ahospers | 0 comentarios | Deja un comentario

13 de octubre de 2018

13. .php Download photos from a .csv Observations Export

Here (attached file) a simple php script for download all photos from a csv observations export.
You have to install a php interpreted on your computer.
The csv file must be named "observations.csv" and it must contains at least the "id" and "image_url" field.
run: php photo_download.php
The script download all photos in the same directory as the php script.
https://groups.google.com/forum/#!topic/inaturalist/VbU36xDeP3k
When you export the observations either from http://www.inaturalist.org/observations/export or from the links form your project page, the CSV you get has an image_url column with a link to the photos.

There are browser plugins, little freeware programs, or you can write very simple scripts (perl/php etc.) that fetch photos using a list of URLs

There is only the url of the first image in the csv when there are more images per observation.

<?php

$row = 0;
$image_url_field = false;
$id_field = false;

if (($handle = fopen("observations.csv", "r")) !== false) {

while (($data = fgetcsv($handle, 0, ",")) !== false) {

$num = count($data);

if ($image_url_field === false) {
for ($c=0; $c < $num; $c++) {
if ( $data[$c] == "image_url" ) {
$image_url_field = $c;

}
if ( $data[$c] == "id" ) {
$id_field = $c;

}
}
}

$row++;

if ($image_url_field === false) {
die ("Missing image_url field");
} else if ($id_field === false) {
die ("Missing id field");
} else if ($row < 2) {
continue;
}

if (empty($data[$image_url_field])) {
continue;
}

$original_image_url = str_replace("medium", "original", $data[$image_url_field]);
$image = file_get_contents($original_image_url);
$extension = preg_match("/jpg|png|gif/i", $original_image_url, $ext);

echo "Download: " . $original_image_url . "\n";

if (isset($ext[0])) {
file_put_contents("observation_" . $data[$id_field] . "." . $ext[0], $image);
} else {
file_put_contents("observation_" . $data[$id_field], $image);
}

}

fclose($handle);
}

https://www.inaturalist.org/blog/15450-announcing-changes-to-projects-on-inaturalist
https://www.inaturalist.org/journal/ahospers/45530-66-relaties-tussen-organismes-aangeven-door-add-test-interactions

test=interactions

66. Interactions, Relaties, Verbondheid

more details here: https://forum.inaturalist.org/t/add-interactions-to-species-pages/433/16 here are many ways. Have a look at
https://www.inaturalist.org/search?q=interactions&source%5B%5D=projects

Now a lot depends on your philosophy.

For instance you can just add an interaction (one of the many fields): and name the other side of the interaction.
But that assumes that you know the other organism, and that if you have it wrong you will fix it, and that if the name changes taxonomically, then you will fix it.

see https://www.inaturalist.org/projects/specific-animal-plant-interactions

My philosophy is that you put both as observations and then link them: that way the community takes care of the identifications, and the link will remain no matter what.
If you follow my philosophy look at:
https://www.inaturalist.org/projects/interactions-s-afr

How can we get this higher up the “desired” list of features?
Both the New Zealanders and southern Africans have projects dealing with this.
Ours is visible at https://www.inaturalist.org/projects/interactions-s-afr 4

Basically, we record only the active interaction (i.e. “a eats b”, not “b is eaten by a” - the latter just being the reciprocal of the first), although user pressure has resulted in us adding a passive field for the reciprocal observation, given that observations fields link only one way, so that these observations do not display their hosts) as:

Visiting flowers: https://www.inaturalist.org/observations?field:Visiting%20a%20flower%20of:%20(Interaction) 6
Eating: https://www.inaturalist.org/observations?field:Eating:%20(Interaction) 5
Parasitizing: https://www.inaturalist.org/observations?field:Parasitizing:%20(Interaction) 1
Attached to: https://www.inaturalist.org/observations?field:attached%20to:%20(Interaction)
Carrying: https://www.inaturalist.org/observations?field:Carrying:%20(Interaction) 1
Associated with: https://www.inaturalist.org/observations?field:Associated%20with:%20(Interaction)
& the passive
https://www.inaturalist.org/observations?field:Passive%20Partner%20to:%20(Interaction)

Note that in each case the field value is the url of the interacting observation. Unfortunately we cannot use this is a query to summarize the interactions.
We can ask
“What flowers does the Cape Sugarbird Visit?” - https://www.inaturalist.org/observations?place_id=113055&subview=grid&taxon_id=13442&field:Visiting%20a%20flower%20of:%20(Interaction)= 3
but we will only see the bird, and not the flowers, even though all the urls to the flowers are in the field - see: https://www.inaturalist.org/observation_fields/7459 2.

In over 5 years of using this “set” of interactions, we have never had a request to add additional interactions (e.g. Eating = preys on = killing to eat - i.e. “killing for fun” has not cropped up), although it would be nice to have a hierarchical dictionary of interactions (e.g. visiting a flower > pollinating a flower (> for nectar, pollen, oil, gum)/robbing a flower/, etc

I’m happy to leave the test=interactions thing available, I’m just not going to make it visible by default or integrate it into the UI. I don’t think we need to ice this topic, as I think the title sums up what we want pretty well. Personally, I think the Feature Requests category is a way to gauge what kinds of things people are interested in, and not necessarily specific implementation plans, so it’s valuable to me to know how many people chose to upvote this. In fact, I will spend one of my votes on it right now

plant Lantana camara apparently “visits flowers of” 46 species of insects, rather than the other way around https://www.inaturalist.org/taxa/50333-Lantana-camara?test=interactions 13). Is it a functionality you can leave available, or are there reasons not to do so?

We investigated this when we redesigned the taxon page in 2016 (yikes, that was a while ago). I just made it so you can see what we did by appending test=interactions to any taxon page URL, and I’ll use examples to explain why we didn’t develop this any further.

The big problem looming over this whole feature is that observation fields are a bad way to model interactions. Since they represent a totally uncontrolled vocabulary, they’re rife with synonymous fields, so it’s hard interpret situations where, for example, there are both eats and preys on interactions, e.g. https://www.inaturalist.org/taxa/117520-Enhydra-lutris-nereis?test=interactions 28. What’s the difference? Why are both supported?

Another problem is that using observation fields to model interactions means that one of the two taxa in the interaction is not subject to crowdsourced identification, so anyone can say that oaks eat humans and there’s nothing the community can do to correct that. As an example, here’s a butterfly that supposedly eats itself: https://www.inaturalist.org/taxa/51097-Papilio-zelicaon?test=interactions 16. It doesn’t, this is just due to an erroneously added observation field. Site curators could just delete this field, but that’s generally not how we like to perform quality control at iNat.

On top of that, we really wanted to incorporate data from GLoBI 12, since we like them and we think it’s cool that they incorporate iNat interaction data, but mapping taxonomies and field semantics proved a hassle, and again it presents the problem of data that the iNat community can’t correct if they find errors.

What we’d like to do is to make a new feature for interactions where an interaction is a relationship between two observations with clear and controlled semantics (to the extent that that’s possible). So instead adding an obs field that says an obs of an oak represents that oak eating a human, you would create an interaction and have to choose two observations, one of an oak and another of a human, and choose “eating” from a menu of interaction types where “eating” means “taxon A is putting all or part of taxon B inside its body for the purpose of personal metabolism” or something. Other users could then vote on whether that was the correct interaction type, and the two observations could be independently identified. We could try and pre-populate this new kind of data with observation fields, or at least make a tool that helps people review their own interaction obs fields to make new-style interactions out of them. That’s a lot more work, though, and it hasn’t really been a priority, so we haven’t gotten around to it.

Anyway, that’s a long way of saying that I agree this would be cool, but doing it right will take considerable effo

Ingresado el 13 de octubre de 2018 por ahospers ahospers | 1 comentario | Deja un comentario

14. Nathan and Cassi Saari's tips (bouteloua) and tricks pos

If a "Place" doesn't seem to have observations, I click Explore on the main observation page, then go to the Map view and zoom in to approximately the area I want and click "redo search in map area" which then gives me all the observations in the zoomed area. There may be better ways to get what you want, but this is the best I've found to let me review what has been seen somewhere I plan to visit, even when the "Place" search does not work.

It's verifiable=false, though, so:
https://www.inaturalist.org/observations?place_id=any&user_id=reiner&verifiable=false

You can currently find them through the Identify page UI if you change to reviewed=any, sort by your username, and change the quality grade:
https://www.inaturalist.org/observations/identify?reviewed=any&quality_grade=casual&user_id=reiner

https://www.inaturalist.org/journal/nathantaylor7583
Cassi Saari's tips (bouteloua) and tricks pos

https://www.inaturalist.org/pages/how+can+i+use+it
Try checking the Identify section, searching for observations without identifications,
http://www.inaturalist.org/observations?has[]=photos&iconic_taxa[]=unknown
or searching for observations that still need to get down to species.
https://www.inaturalist.org/observations?has[]=photos&lrank=genus
Or search filters allow a bunch of different ways to search, so play around!

https://www.inaturalist.org/pages/how+can+i+use+it

https://www.inaturalist.org/pages/tips_tricks_nz
Search Term and Tricks
https://groups.google.com/forum/#!topic/inaturalist/vqQH4FmChfE
Russell Pfau's iNat tips & tricks
https://www.inaturalist.org/people/pfau_tarleton
Cassi Saari's iNat tips & tricks
https://www.inaturalist.org/journal/bouteloua/14205-inat-tips-tricks

Since starting out on iNaturalist, I've learned a lot of nifty tricks about how to maneuver the website more efficiently. The following is pretty much a list of those for my own reference (i.e., copy and pasting), but hopefully, others will find it helpful too. I know a lot of this is pretty simple stuff to some of you. Also, be sure to remove the space after each "< " when actually using hyperlinks and when embedding pictures.

Hyperlinks
Basic format: < a href="[link]">[text]< /a>
For instance, to link to BONAP, I would type in the following without a space after each "< ":
< a href="http://bonap.net/NAPA/Genus/Traditional/County">BONAP< /a>

Embedding images

Embedding images basic format: < img src="[image link]" width=100%>
For instance, to embed the first image from this link, I would type the following without a space after each "< ":
< img src="https://static.inaturalist.org/photos/13118244/original.jpeg?1516912953" width=100%>
The link can be found by right clicking on the image you want and clicking "Copy Image Address". You can also vary the size of the photo by changing the "width" part. For instance the above address will end up with this:

However, if you modify the text to:
< img src="https://static.inaturalist.org/photos/13118244/original.jpeg?1516912953" width=50%>
it will look like this:

Bold, italics, or crossed out text
Basic format: < b>[bold text]< /b>, < i>[italic text]< /i>, or < s>[crossed out text]< /s>
You can also get bold and italic text by typing < b>< i>[text]< /b>< /i> or any other combination. You can even have all three.

Creating extra spaces.
Basic format: < br>
iNaturalist will only allow one space between paragraphs and I occasionally want more. What follows is a space followed by the < br> followed by another space:

This is what three spaces look like without < br>:

Helpful link extensions

When searching for observations, I had always wished that there was a "not" function (e.g., plants but not flowering plants or Texas but not Gaines County). It turns out there is, but it is a little more complicated than I thought. To do this, you have to add the following extensions to the end of the link. On any of these, you can exclude as many variables as you would like by adding another extension onto the previous extension. This will work for both where you can search observations and in identify.

Keep in mind that the first extension will be separated from the main part of the link by "?". Any additional extensions will be separated by "&".

Exclude taxa:

Basic format: &without_taxon_id=[Taxon ID]
Example without the extension: https://www.inaturalist.org/observations?place_id=any&subview=grid&taxon_id=47126
Example without the extension: https://www.inaturalist.org/observations?place_id=any&subview=grid&taxon_id=47126&without_taxon_id=47125
The above example includes plants but excludes flowering plants (Taxon ID: 47125).

Exclude places:

Basic format: &not_in_place=[Location ID]
Example without the extension: https://www.inaturalist.org/observations/identify?place_id=92937
Example without the extension: https://www.inaturalist.org/observations/identify?place_id=92937&not_in_place=2737&not_in_place=1207
The above example includes all observations from the Llano Estacado except the counties of Lubbock (Place ID: 2737) and Midland (Place ID: 1207).

If you want more information or more items to exclude, please go here. This is where I found out about it in the first place.

Custom bounding box

Modifying a trick I picked up here.
Basic format: &nelat=[northeast corner latitude]&nelng=[northeast corner longitude]&swlat=[southwest corner latitude]&swlng=[southwest corner longitude]
If I wanted to see all the Opuntia observations from south of Midland, west of Garden City, east of Fort Stockton, and north of Langtry, I wouldn't be able to do this with the "redo search in map" feature. However, if you really want that custom location, you can track down the coordinates of the northeast and southwest corners of the bounding box you want and plug them into the format above. In the example, it would look like this:

Extension: &nelat=32.006531&nelng=-101.504131&swlat=29.835352&swlng=-102.800566
Actual link: https://www.inaturalist.org/observations?nelat=32.006531&nelng=-101.504131&place_id=any&swlat=29.835352&swlng=-102.800566&taxon_id=47902

Note that neither the box nor the dots on the map will show up when you do this, but the greater specificity can be worth it. Another advantage, this will also work in identify:

https://www.inaturalist.org/observations/identify?taxon_id=47902&nelat=32.006531&nelng=-101.504131&swlat=29.835352&swlng=-102.800566

Searching for observations with annotations

Basic extension: &term_id=[#]&term_id=[#]
This will require two extensions, one for the type of annotation (like sex) and one for the actual annotation (like male). Add without_ between & and term for observations without an annotation. What follows is a list of IDs for each annotation.

  1. lifestage: -2. adult -3. teneral -4. pupa -5. nymph -6. larva -7. egg -8. juvenile -16. subimago
  2. sex: -10. femle -11. male
  3. plant phenology: -13. flowering -14. fruiting -15. budding

To display only observations of plants in flower, you would add the extension: &term_id=12&term_id=13. You can see this in the example here: https://www.inaturalist.org/observations?place_id=64815&subview=grid&taxon_id=47126&term_id=12&term_value_id=13

Other useful links:

Cassi Saari's tips (bouteloua) and tricks post
Russell Pfau's (pfau_tarleton) journal posts (good tips in several journal posts)
NatureWatch NZ Tips and tricks page
iNaturalist google group
HTML tags

Other useful tips:

Searching for IDs you've made
https://www.inaturalist.org/journal/nathantaylor7583

Ingresado el 13 de octubre de 2018 por ahospers ahospers | 0 comentarios | Deja un comentario

12 .y Downloading all the images in an exported observations file

Here's a Python alternative to Armand's PHP script (for downloading all the images in an exported observations file).
There is only the url of the first image in the csv when there are more images per observation.

https://groups.google.com/forum/#!topic/inaturalist/VbU36xDeP3k
When you export the observations either from http://www.inaturalist.org/observations/export or from the links form your project page, the CSV you get has an image_url column with a link to the photos.

There are browser plugins, little freeware programs, or you can write very simple scripts (perl/php etc.) that fetch photos using a list of URLs

%% Constants and imports

import os
import sys
import pandas as pd
import humanfriendly
import urllib
import urllib.request
from multiprocessing.pool import ThreadPool
import time

OBSERVATION_LIST_FILE = r"D:\temp\observations-38841.csv\observations-38841.csv"
IMAGE_OUTPUT_DIR = r"D:\temp\observations-38841.csv"

Concurrent download threads

nThreads = 250

overwriteFiles = True

Create the output directory if necessary

if not os.path.exists(IMAGE_OUTPUT_DIR):
os.makedirs(IMAGE_OUTPUT_DIR)

%% Read observations

print('Reading observation .csv file')
df = pd.read_csv(OBSERVATION_LIST_FILE)
print('Read {} observations'.format(len(df)))

%% Enumerate images we want to download

ids = set()
indexedUrlList = []

for iImage, row in df.iterrows():
url = row['image_url']
id = row['id']
# Make sure the ID is unique
assert not id in ids
ids.add(id)
outputFileName = os.path.join(IMAGE_OUTPUT_DIR,'{}.jpg'.format(id))
indexedUrlList.append([iImage,url,outputFileName])
print('Fetching URL {} to {}'.format(url,outputFileName))

nImages = len(indexedUrlList)

%% Download files in parallel (download function)

errorList = [''] * nImages

Input should be a 3-element list: index, url, output filename

Returns url, imageFilename, error

def fetch_url(indexedUrl,nImages):

assert len(indexedUrl) == 3

iImage = indexedUrl[0]
url = indexedUrl[1]
imageFilename = indexedUrl[2]
parentDir = os.path.dirname(imageFilename)

doDownload = 1

# Check whether the file already exists
if os.path.exists(imageFilename):

if overwriteFiles:
print("File {} exists, over-writing".format(imageFilename))
else:

print("File {} exists, skipping".format(imageFilename))
errorList[iImage] = 'skipped'
doDownload = 0

if doDownload:

# Make the parent directory if necessary
os.makedirs(parentDir, exist_ok=True)

# Download the file

print("Downloading file {} of {} ({}) to {}".format(iImage,nImages,url,imageFilename))

try:
urllib.request.urlretrieve(url, imageFilename)
errorList[iImage] = 'success'
sizeString = humanfriendly.format_size(os.path.getsize(imageFilename))
print("Downloaded file {} to {} ({})".format(url,imageFilename,sizeString))

except:
s = "Error downloading file {}".format(url)
print(s)
errorList[iImage] = s

return url,imageFilename,errorList[iImage]

%% Download files in parallel (loop)

https://stackoverflow.com/questions/16181121/a-very-simple-multithreading-parallel-url-fetching-without-queue

time() == Time in seconds since an arbitrary historical point

start = time.time()
pool = ThreadPool(nThreads)

results = pool.imap_unordered(lambda x: fetch_url(x,nImages), indexedUrlList)

results = pool.map(lambda x: fetch_url(x,nImages), indexedUrlList)

nErrors = 0
nSuccess = 0
nSkipped = 0

for url,imageFilename,errorString in results:
if errorString is 'success':
nSuccess = nSuccess + 1
elif errorString is 'skipped':
nSkipped = nSkipped + 1
else:
print("Error fetching {}: {}".format(url, errorString))
nErrors = nErrors + 1

downloadTime = time.time() - start

print("Elapsed Time: {} seconds".format(humanfriendly.format_timespan(downloadTime)))

estimate_ss_download.estimate_ss_download(nImages,-1,downloadTime)

print("Attempted to download {} images".format(nImages))

print("{} succeeded, {} skipped, {} errors".format(nSuccess,nSkipped,nErrors))

sys.stdout.flush()

Ingresado el 13 de octubre de 2018 por ahospers ahospers | 2 comentarios | Deja un comentario

19 de octubre de 2018

15. Pros and cons of low-level identifications reviewed=any, quality_grade=casual

https://www.inaturalist.org/subscriptions?type=observation

I enjoy doing "Unknown" identifications (it's like a treasure hunt!). Sometimes there's a "lump" in the queue of a particular user's bulk uploads that aren't labeled yet, and I'd like to skip over them because the person may be working on them themselves later. Is there a string I can include in the search url to omit their observations for the moment?

Starter url example: https://www.inaturalist.org/observations/identify?iconic_taxa=unknown
Example url when you are positively filtering for a user: https://www.inaturalist.org/observations/identify?iconic_taxa=unknown&user_id=questagame

e.g. if you want to ID observations in DC but not from me (user ID 7580), you'd use https://www.inaturalist.org/observations/identify?verifiable=true&page=1&place_id=5&not_user_id=7580

There are a few ways to find someone's user ID, but the one I go to is to the header search, type their name, and then click on their profile from that and you'll see their user number in the url instead of their username. e.g. https://www.inaturalist.org/search?q=carrieseltzer

--
LowLevel identifications:
https://www.inaturalist.org/pages/help#coarse-ids
https://groups.google.com/forum/#!topic/inaturalist/uwtZP7VOHcA
https://www.inaturalist.org/observations/17474847

The

lrank, hrank, and rank are great tools

if you need to find observations at a specific rank. You can also use the Identify page to find your own observations that you haven't yet reviewed, regardless of whether others have IDed them (I also have a ton to go through myself).

able to filter with
iconic_taxa=unknownso they can see all their unidentified observations
/observations?lrank=phylum&place_id=any
It's verifiable=false, though, so:
https://www.inaturalist.org/observations?place_id=any&user_id=reiner&verifiable=false

They can always use the Rank filter in the Explore Filters menu to
see, for example, all observations ID to taxa of rank Phlum or coarser
like this:
https://www.inaturalist.org/observations?lrank=phylum&place_id=any

?Iconic = False is a very easy filter and gives a realistic picture of what needs to be identified.
?lrank=phylum is a mix of rubbish that has been rejected as identifiable with good data that require attention.

Smiley face

You can currently find them through the Identify page UI if you change to reviewed=any, sort by your username, and change the quality grade:

https://www.inaturalist.org/observations/identify?reviewed=any&quality_grade=casual&user_id=reiner

For southern Africa:
None of our plant experts (professional taxonomists) are willing to work above the level of family (and many stick to tribes). Identification above level of family is purely useless - no one is prepared to look at them. (exceptions are Mosses, Ferns and Gymnosperms, where experts tend to work above the family level)
Competent users willing to make IDs to family and tribe level (and these are rare) are happy to target the unidentified observations, but they are not enthusiastic to tackle the Phylum, and even above class level. Even the dicot and monocot level is not used. Identifications in these categories tend to get stuck there and are never visited. The complication of having all the dross hiding the good data is an issue.
A few get noticed by people working on local sites, but they would be identified no matter what their ID rank at the time.

I'll continue adding coarse IDs as needed as I personally find it helpful and many others have said the same. I frequently search to add IDs of plants, so having at least the coarse ID is necessary for that. Obviously finer IDs are better if possible (insect instead of animal), so if you can slightly finetune whatever your proces

reason to do coarse IDs is to make sure things are tagged to the point where experts can find them

[b]The lrank, hrank, and rank are great tools if you need to find observations at a specific rank. You can also use the Identify page to find your own observations that you haven't yet reviewed, regardless of whether others have IDed them (I also have a ton to go through myself).[/b]

If there are observations that really can't be IDed beyond "plant" because the photo is really really bad or something, then please mark it as no longer needing community ID.

https://www.inaturalist.org/subscriptions?type=observation

https://www.inaturalist.org/blog/15450-announcing-changes-to-projects-on-inaturalist
https://www.inaturalist.org/journal/ahospers/45530-66-relaties-tussen-organismes-aangeven-door-add-test-interactions

test=interactions

66. Interactions, Relaties, Verbondheid

more details here: https://forum.inaturalist.org/t/add-interactions-to-species-pages/433/16 here are many ways. Have a look at
https://www.inaturalist.org/search?q=interactions&source%5B%5D=projects

Now a lot depends on your philosophy.

For instance you can just add an interaction (one of the many fields): and name the other side of the interaction.
But that assumes that you know the other organism, and that if you have it wrong you will fix it, and that if the name changes taxonomically, then you will fix it.

see https://www.inaturalist.org/projects/specific-animal-plant-interactions

My philosophy is that you put both as observations and then link them: that way the community takes care of the identifications, and the link will remain no matter what.
If you follow my philosophy look at:
https://www.inaturalist.org/projects/interactions-s-afr

How can we get this higher up the “desired” list of features?
Both the New Zealanders and southern Africans have projects dealing with this.
Ours is visible at https://www.inaturalist.org/projects/interactions-s-afr 4

Basically, we record only the active interaction (i.e. “a eats b”, not “b is eaten by a” - the latter just being the reciprocal of the first), although user pressure has resulted in us adding a passive field for the reciprocal observation, given that observations fields link only one way, so that these observations do not display their hosts) as:

Visiting flowers: https://www.inaturalist.org/observations?field:Visiting%20a%20flower%20of:%20(Interaction) 6
Eating: https://www.inaturalist.org/observations?field:Eating:%20(Interaction) 5
Parasitizing: https://www.inaturalist.org/observations?field:Parasitizing:%20(Interaction) 1
Attached to: https://www.inaturalist.org/observations?field:attached%20to:%20(Interaction)
Carrying: https://www.inaturalist.org/observations?field:Carrying:%20(Interaction) 1
Associated with: https://www.inaturalist.org/observations?field:Associated%20with:%20(Interaction)
& the passive
https://www.inaturalist.org/observations?field:Passive%20Partner%20to:%20(Interaction)

Note that in each case the field value is the url of the interacting observation. Unfortunately we cannot use this is a query to summarize the interactions.
We can ask
“What flowers does the Cape Sugarbird Visit?” - https://www.inaturalist.org/observations?place_id=113055&subview=grid&taxon_id=13442&field:Visiting%20a%20flower%20of:%20(Interaction)= 3
but we will only see the bird, and not the flowers, even though all the urls to the flowers are in the field - see: https://www.inaturalist.org/observation_fields/7459 2.

In over 5 years of using this “set” of interactions, we have never had a request to add additional interactions (e.g. Eating = preys on = killing to eat - i.e. “killing for fun” has not cropped up), although it would be nice to have a hierarchical dictionary of interactions (e.g. visiting a flower > pollinating a flower (> for nectar, pollen, oil, gum)/robbing a flower/, etc

I’m happy to leave the test=interactions thing available, I’m just not going to make it visible by default or integrate it into the UI. I don’t think we need to ice this topic, as I think the title sums up what we want pretty well. Personally, I think the Feature Requests category is a way to gauge what kinds of things people are interested in, and not necessarily specific implementation plans, so it’s valuable to me to know how many people chose to upvote this. In fact, I will spend one of my votes on it right now

plant Lantana camara apparently “visits flowers of” 46 species of insects, rather than the other way around https://www.inaturalist.org/taxa/50333-Lantana-camara?test=interactions 13). Is it a functionality you can leave available, or are there reasons not to do so?

We investigated this when we redesigned the taxon page in 2016 (yikes, that was a while ago). I just made it so you can see what we did by appending test=interactions to any taxon page URL, and I’ll use examples to explain why we didn’t develop this any further.

The big problem looming over this whole feature is that observation fields are a bad way to model interactions. Since they represent a totally uncontrolled vocabulary, they’re rife with synonymous fields, so it’s hard interpret situations where, for example, there are both eats and preys on interactions, e.g. https://www.inaturalist.org/taxa/117520-Enhydra-lutris-nereis?test=interactions 28. What’s the difference? Why are both supported?

Another problem is that using observation fields to model interactions means that one of the two taxa in the interaction is not subject to crowdsourced identification, so anyone can say that oaks eat humans and there’s nothing the community can do to correct that. As an example, here’s a butterfly that supposedly eats itself: https://www.inaturalist.org/taxa/51097-Papilio-zelicaon?test=interactions 16. It doesn’t, this is just due to an erroneously added observation field. Site curators could just delete this field, but that’s generally not how we like to perform quality control at iNat.

On top of that, we really wanted to incorporate data from GLoBI 12, since we like them and we think it’s cool that they incorporate iNat interaction data, but mapping taxonomies and field semantics proved a hassle, and again it presents the problem of data that the iNat community can’t correct if they find errors.

What we’d like to do is to make a new feature for interactions where an interaction is a relationship between two observations with clear and controlled semantics (to the extent that that’s possible). So instead adding an obs field that says an obs of an oak represents that oak eating a human, you would create an interaction and have to choose two observations, one of an oak and another of a human, and choose “eating” from a menu of interaction types where “eating” means “taxon A is putting all or part of taxon B inside its body for the purpose of personal metabolism” or something. Other users could then vote on whether that was the correct interaction type, and the two observations could be independently identified. We could try and pre-populate this new kind of data with observation fields, or at least make a tool that helps people review their own interaction obs fields to make new-style interactions out of them. That’s a lot more work, though, and it hasn’t really been a priority, so we haven’t gotten around to it.

Anyway, that’s a long way of saying that I agree this would be cool, but doing it right will take considerable effo

Ingresado el 19 de octubre de 2018 por ahospers ahospers | 0 comentarios | Deja un comentario