Photos / Sounds

What

Marsh Wren Cistothorus palustris

Observer

kyletansley

Date

September 7, 2019 07:10 AM EDT

Description

family of 5 were very friendly!

Photos / Sounds

What

American Redstart Setophaga ruticilla

Observer

kyletansley

Date

May 27, 2018 07:48 PM EDT

Photos / Sounds

Square

What

Eastern Box Turtle Terrapene carolina ssp. carolina

Observer

richard864

Date

August 22, 2019 11:15 AM EDT

Photos / Sounds

What

Greater Spotted Eagle Clanga clanga

Date

April 15, 2019 11:51 AM CEST

Photos / Sounds

Square

What

Foothill Yellow-legged Frog Rana boylii

Observer

jplarry

Date

October 17, 2015 08:39 PM EDT

Description

Foothills Yellow-Legged Frog (Rana boylii) from Jedediah Smith State Park in California

Photos / Sounds

Square

What

Coastal Tailed Frog Ascaphus truei

Observer

jplarry

Date

October 17, 2015 07:52 PM EDT

Description

Coastal Tailed Frog (Ascaphus truei) from Jedediah Smith State Park in California

Photos / Sounds

Square

What

Coastal Giant Salamander Dicamptodon tenebrosus

Observer

jplarry

Date

October 16, 2015 11:39 AM EDT

Place

Oregon, US (Google, OSM)

Description

Pacific Giant Salamander (Dicamptodon tenebrosus) from the Oneonta Gorge of Oregon

Photos / Sounds

Square

What

Northern Red-legged Frog Rana aurora

Observer

jplarry

Date

October 16, 2015 11:24 AM EDT

Place

Oregon, US (Google, OSM)

Description

Northern Red-Legged Frog (Rana aurora) in front of Oneonta Falls in the Oneonta Gorge in Oregon

Photos / Sounds

Square

What

European Common Frog Rana temporaria

Observer

ilias_strachinis

Date

March 1, 2019 12:44 AM EET

Place

Sofia, BG (Google, OSM)

Photos / Sounds

What

Bushehr Thin-toed Gecko Cyrtopodion kiabii

Observer

apbbani

Date

October 1, 2019

Photos / Sounds

Square

What

Houbara Bustard Chlamydotis undulata

Observer

amohajeran

Date

July 12, 2015 03:53 PM +0430

Place

Yazd, IR (Google, OSM)

Photos / Sounds

Square

What

Wedge-tailed Shearwater Ardenna pacifica

Observer

bridgetspencer

Date

March 22, 2018

Photos / Sounds

What

Bush Stone-Curlew Burhinus grallarius

Observer

bridgetspencer

Date

March 26, 2018

Photos / Sounds

What

Tawny Frogmouth Podargus strigoides

Observer

bridgetspencer

Date

March 30, 2018

Photos / Sounds

Square

What

Least Sandpiper Calidris minutilla

Observer

kyletansley

Date

August 31, 2019 06:07 PM EDT

Photos / Sounds

Square

What

Great Egret Ardea alba

Observer

kyletansley

Date

September 4, 2019 06:15 PM EDT

Description

Two egrets had a scuffle for some reason.

Photos / Sounds

Square

What

Monarch Danaus plexippus

Observer

atlnature

Date

October 9, 2019 03:01 PM EDT

Description

Chattahoochee Nature Center

Photos / Sounds

Square

What

American Kestrel Falco sparverius

Observer

paulcools

Date

February 8, 2009 09:34 PM GMT

Photos / Sounds

Square

What

Hen Harrier Circus cyaneus

Observer

paulcools

Date

January 11, 2012

Photos / Sounds

What

White-cheeked Tern Sterna repressa

Observer

cliygh-and-mia

Date

October 10, 2019 12:12 AM EDT

Photos / Sounds

What

Northern New Zealand Dotterel Charadrius obscurus ssp. aquilonius

Observer

linda_g

Date

September 24, 2018 03:59 PM NZST

Description

Two individuals (note that only one has been banded in photo)

Photos / Sounds

Square

What

European Honey-Buzzard Pernis apivorus

Observer

laukinis

Date

August 9, 2013 07:39 AM HST

Photos / Sounds

Square

What

American Dipper Cinclus mexicanus

Observer

masonmaron

Date

October 6, 2019 11:15 AM PDT

Photos / Sounds

Square

What

Blue Jay Cyanocitta cristata

Observer

masonmaron

Date

October 4, 2019 05:34 PM PDT

Photos / Sounds

Observer

hydaticus

Date

June 15, 2019 12:34 PM CDT

Photos / Sounds

What

Bermuda Petrel Pterodroma cahow

Observer

derekrogers

Date

November 8, 2018 03:54 PM EST

Place

(Somewhere...)

Photos / Sounds

What

Bermuda Petrel Pterodroma cahow

Observer

wsweet321

Date

September 21, 2019 04:14 PM EDT

Place

(Somewhere...)

Description

Third Massachusetts record.

Photos / Sounds

What

Eurasian Hobby Falco subbuteo

Observer

paxromana

Date

September 13, 2019 05:13 PM +03

Photos / Sounds

Square

What

Pallid Scops-Owl Otus brucei

Observer

garygoldfinger

Date

October 27, 2017 09:26 AM PDT

Description

Owl

Photos / Sounds

What

Least Sandpiper Calidris minutilla

Observer

kyletansley

Date

September 27, 2019 05:54 PM EDT

Description

Single bird feeding along the edge of the mudflats.

Photos / Sounds

Square

What

Persian Leopard Panthera pardus ssp. tulliana

Observer

hassanpishvaei1

Date

January 12, 2017

Place

Iran (Google, OSM)

Photos / Sounds

Square

What

Carolina Mantis Stagmomantis carolina

Observer

seaheart88

Date

September 27, 2019 01:05 PM EDT

Photos / Sounds

What

White-striped Tiger Beetle Cylindera lemniscata

Observer

kueda

Date

August 2, 2019 12:29 AM MST

Photos / Sounds

What

Audubon's Warbler Setophaga coronata ssp. auduboni

Observer

masonmaron

Date

September 24, 2019 05:54 PM PDT

Description

Watched it collide with a window. It stood back up pretty quickly, head balance was fine, just seemed stunned. I brought it out of the open and to a branch of an evergreen tucked under some bushes. Came back 30 minutes later just in time to watch it fly off with a normal flight pattern. A happy ending to an unfortunate story, I suppose.

Photos / Sounds

Square

What

Laughing Gull Leucophaeus atricilla

Observer

pablo48

Date

June 15, 2019 05:47 PM UTC

Photos / Sounds

Square

What

Nine-banded Armadillo Dasypus novemcinctus

Observer

bridgetspencer

Date

July 1, 2016 10:09 PM PDT

Photos / Sounds

Square

What

Rosewood Tree Frog Dendropsophus mapinguari

Observer

stercorariidae

Date

August 17, 2019 09:45 AM HST

Description

*location is not exact- The river and general vicinity is, however. This is an upload of a friends photo of a shared observation so I do not have access to the location.

Photos / Sounds

What

Giant Prairie Robber Fly Microstylum morosum

Observer

sylbird

Date

August 5, 2019 11:09 AM CDT

Photos / Sounds

Square

What

Cuban Tree Frog Osteopilus septentrionalis

Observer

brianna115

Date

July 22, 2019 03:25 PM EDT

Photos / Sounds

What

Dunlin Calidris alpina

Observer

cliygh-and-mia

Date

September 17, 2019 07:32 AM EDT

Description

Lifer.

Photos / Sounds

Square

What

Indian Courser Cursorius coromandelicus

Observer

saurabh_chinkara

Date

January 17, 2016 12:18 AM IST

Photos / Sounds

Square

What

White-breasted Nuthatch Sitta carolinensis

Observer

masonmaron

Date

September 8, 2019 08:00 AM PDT

Photos / Sounds

Square

What

Northern Pacific Rattlesnake Crotalus oreganus ssp. oreganus

Observer

spencer_riffle

Date

July 13, 2019 09:40 PM PDT

Photos / Sounds

Square

What

Eastern Box Turtle Terrapene carolina ssp. carolina

Observer

richard864

Date

August 22, 2019 11:31 AM EDT

Photos / Sounds

Square

What

Australian Reed Warbler Acrocephalus australis

Observer

carolynstewart

Date

August 28, 2019 02:57 PM AEST

Photos / Sounds

Square

What

Little Corella Cacatua sanguinea

Observer

carolynstewart

Date

August 28, 2019 02:24 PM AEST

Description

These birds were playing.

Photos / Sounds

Square

What

Royal Tern Thalasseus maximus

Observer

jalinage00

Date

July 2, 2016 10:06 PM CDT

Description

Las crías son de Charral Sandwich y Real

Photos / Sounds

Square

What

Whiskered Tern Chlidonias hybrida

Observer

paulcools

Date

May 9, 2007

Photos / Sounds

Square

What

White-winged Tern Chlidonias leucopterus

Observer

paulcools

Date

May 14, 2008

Photos / Sounds

What

White-cheeked Tern Sterna repressa

Observer

cliygh-and-mia

Date

September 9, 2019 06:58 AM IDT

Description

Hovering in extreme side-lighting, moved close into better light.

Photos / Sounds

What

Swainson's Hawk Buteo swainsoni

Observer

masonmaron

Date

September 8, 2019 12:12 PM PDT

Photos / Sounds

What

Be’er Sheva Fringe-fingered Lizard Acanthodactylus beershebensis

Observer

neymark

Date

March 12, 2014

Photos / Sounds

What

Semipalmated Plover Charadrius semipalmatus

Observer

kyletansley

Date

August 24, 2019 06:55 AM EDT

Description

On the sandbar

Photos / Sounds

What

White-cheeked Tern Sterna repressa

Observer

cliygh-and-mia

Date

September 4, 2019 12:15 AM EDT

Photos / Sounds

Square

What

Osprey Pandion haliaetus

Observer

jersoncardenas

Date

July 12, 2019 10:29 AM -05

Photos / Sounds

Square

What

Black Woodpecker Dryocopus martius

Observer

paulcools

Date

May 9, 2008 09:15 AM BST

Photos / Sounds

What

Green Heron Butorides virescens

Observer

saswat

Date

September 4, 2019 05:00 PM EDT

Photos / Sounds

What

White-eyed Gull Ichthyaetus leucophthalmus

Observer

cliygh-and-mia

Date

September 4, 2019 12:01 AM EDT

Place

(Somewhere...)

Photos / Sounds

Square

What

White-winged Tern Chlidonias leucopterus

Observer

robinjames

Date

March 17, 2019 06:24 PM +08

Description

Not sure which species of tern this is - help with ID appreciated!

Tags

Photos / Sounds

Square

What

Cooper's Hawk Accipiter cooperii

Observer

masonmaron

Date

September 1, 2019 12:01 PM PDT

Photos / Sounds

What

Graceful Meadow Katydid Conocephalus gracillimus

Observer

aispinsects

Date

August 22, 2019 09:36 PM EDT

Photos / Sounds

What

Ruddy Darter Sympetrum sanguineum

Observer

cliygh-and-mia

Date

August 23, 2019 04:02 AM EDT

Description

Who knew dragonflies liked alcohol!

Photos / Sounds

What

European Starling Sturnus vulgaris

Observer

antonchechulin

Date

August 21, 2019 09:32 AM +03

Photos / Sounds

Square

What

Barred Owl Strix varia

Observer

bridgetspencer

Date

August 20, 2019 08:33 AM PDT

Photos / Sounds

Copyright infringement square

Observer

renaissiceyxx

Date

August 24, 2018

Description

inaturalist / iNaturalistAndroid
crowdin.py Projects

#
# Python 3 script for validating and importing translations from a crowdin build
# zip.
#

from glob import glob
from subprocess import run, PIPE
import sys
import os
import re
import shutil
import tempfile
import xml.etree.ElementTree as ET
from optparse import OptionParser

# https://developer.android.com/reference/java/util/Formatter#syntax
ANDROID_FORMAT_PATTERN = re.compile(r"%((?P\d+)\$)?(?P[\-\#\+\s0\,\(])?(?P\d+)?(?P\.\d+)?(?P[bhscdoxefgat%n])")

def call_cmd(*args, **kwargs):
  run(args, **kwargs)

def extless_basename(path):
  if os.path.isfile(path):
    return os.path.splitext(os.path.basename(path))[0]
  return os.path.split(path)[-1]

def import_crowdin_for_android(zip_path, options=None):
  if zip_path == __file__:
    zip_path = sys.argv[1]
  dir_path = os.path.join(tempfile.mkdtemp(), extless_basename(zip_path))
  call_cmd("unzip", zip_path, "-d", dir_path)
  for path in glob("{}/*".format(dir_path)):
    if options.locale and options.locale not in path:
      continue
    crowdin_locale = extless_basename(path)
    locale, *sublocale = crowdin_locale.split("-")
    sublocale = None if len(sublocale) == 0 else sublocale[0]
    android_locale = locale
    if sublocale:
      android_locale = "{}-r{}".format(locale, sublocale)
    android_dir_path = os.path.join( "iNaturalist", "src", "main", "res", "values-{}".format(android_locale))
    if not os.path.isdir(android_dir_path):
      if options.verbose:
        print("\tCreating {}".format(android_dir_path))
      os.makedirs(android_dir_path, exist_ok=True)
    src = os.path.join(path, "Android", "strings.xml")
    dst = os.path.join(android_dir_path, "strings.xml")
    if options.verbose:
      print("\tCopying {} to {}".format(src, dst))
    shutil.copyfile(src, dst)

def validate_android_translations(options=None):
  # Build the English reference dicts
  en_tree = ET.parse("iNaturalist/src/main/res/values/strings.xml")
  en_strings = {}
  en_string_arrays = {}
  for node in en_tree.findall("string"):
    en_strings[node.get("name")] = node.text
  for node in en_tree.findall("string-array"):
    en_string_arrays[node.get("name")] = [child.text for child in node]
  # Compile validation errors
  errors = {}
  warnings = {}
  for path in glob("iNaturalist/src/main/res/values-*/strings.xml"):
    if options.locale and options.locale not in path:
      continue
    if options.verbose:
      print("Checking {}".format(path))
    errors[path] = {}
    warnings[path] = {}
    tree = ET.parse(path)
    for node in tree.findall("string"):
      key = node.get("name")
      if options.key and options.key not in key:
        continue
      if key not in en_strings:
        continue
      en_string = en_strings[key]
      if options.debug:
        print("\tkey: {}".format(key))
        print("\ten_string: {}".format(en_string))
        print("\ttranslation: {}".format(node.text))
      # Ensure all variables in the English string are in the translation
      for match in re.finditer(ANDROID_FORMAT_PATTERN, en_string):
        translation_mismatch = None
        number_of_usages = 0
        for tm in re.finditer(ANDROID_FORMAT_PATTERN, node.text):
          indexes_match = tm.group("argument_index") == match.group("argument_index")
          conversions_match = tm.group("conversion") == match.group("conversion")
          if indexes_match:
            number_of_usages += 1
          if indexes_match and not conversions_match:
            translation_mismatch = tm
        # if variable missing in node.text:
        if translation_mismatch or number_of_usages == 0:
          if key not in errors[path]:
            errors[path][key] = []
          errors[path][key].append("Missing variable {}".format(match.group(0)))
          if options.debug:
            print("\t\t{}".format(errors[path][key][-1]))
        # if too many usages
        if number_of_usages > 1:
          if key not in warnings[path]:
            warnings[path][key] = []
          warnings[path][key].append("Too many usages of {}".format(match.group(0)))
          if options.debug:
            print("\t\t{}".format(warnings[path][key][-1]))
      # Warn about variables that are no longer present in English
      if node.text:
        en_indexes = [m.group("argument_index") for m in re.finditer(ANDROID_FORMAT_PATTERN, en_string)]
        for match in re.finditer(ANDROID_FORMAT_PATTERN, node.text):
          if match.group("argument_index") not in en_indexes:
            if key not in errors[path]:
              errors[path][key] = []
            errors[path][key].append("Extraneous variable {}".format(tm.group(0)))
            if options.debug:
              print("\t\t{}".format(errors[path][key][-1]))

  # Print validation errors
  for path in glob("iNaturalist/src/main/res/values-*/strings.xml"):
    if options.locale and options.locale not in path:
      continue
    keys = list(errors[path].keys()) + list(warnings[path].keys())
    keys = [k for k in keys if k != None]
    keys = set(keys)
    print(path)
    if len(keys) == 0:
      print("\tNo problems")
      continue
    for key in keys:
      print("\t{}".format(key))
      if key in errors[path]:
        for error in errors[path][key]:
          print("\t\tERROR: {}".format(error))
      if key in warnings[path]:
        for warning in warnings[path][key]:
          print("\t\tWarning: {}".format(warning))

def find_unused_keys(options=None):
  en_tree = ET.parse("iNaturalist/src/main/res/values/strings.xml")
  keys = set()
  for node in en_tree.findall("string"):
    keys.add(node.get("name"))
  for node in en_tree.findall("string-array"):
    keys.add(node.get("name"))
  print("Looking for unused keys...")
  unused = []
  for key in sorted(keys):
    if options.debug:
      print("Checking {}".format(key))
    else:
      print("\rChecking {0:{1}}".format(key, 100), end="\r", flush=True)
    result = run(["egrep", "-r", "(R\.(string|array)\.|@(string|array)\/){}".format(key), "./iNaturalist/src/main/"],
      stdout=PIPE)
    lines = result.stdout.decode('utf-8').strip().split("\n")
    if not lines[0]:
      lines = []
    if options.debug:
      print("\t{} uses".format(len(lines)))
    if len(lines) == 0:
      unused.append(key)
  print("\r\n{} potentially unused keys (check for dynamic key generation):".format(len(unused)), flush=True)
  for key in unused:
    print(key)

def main():
  parser = OptionParser("Usage: %prog [options]")
  parser.description = """
Script for validating and updating translations from crowdin. Default
action is to validate the existing translations.
USAGE
python3 crowdin.py -f path/to/crowdin.zip -v
Note: Python 3 required.
""".strip()
  parser.add_option("-v", "--verbose", action="store_true", dest="verbose")
  parser.add_option("-d", "--debug", action="store_true", dest="debug")
  parser.add_option("-f", "--file", action="store", type="string", dest="zip_path",
    help="Path to crowdin export zip file. This will replace all local versions of these files with the crowdin versions.")
  parser.add_option("-l", "--locale", action="store", dest="locale", help="Only import and/or validate this locale")
  parser.add_option("-k", "--key", action="store", dest="key", help="Only validate keys containing this substring")
  parser.add_option("-u", "--find-unused", action="store_true", dest="find_unused", help="Show keys that don't seem to be used any more")
  (options, args) = parser.parse_args()
  if options.zip_path:
    import_crowdin_for_android(options.zip_path, options)
  validate_android_translations(options)
  if options.find_unused:
    print("\n\n")
    find_unused_keys(options)

if __name__ == "__main__":
  main()

Photos / Sounds

Square

What

Desert Horned Viper Cerastes cerastes

Observer

andrasz

Date

October 27, 2007 10:42 AM CEST

Description

Possibly the only documentation of a C. cerastes feeding in the wild. Full sequence at: http://www.fjexpeditions.com/expeditions/past/oct04/oct04_2.htm

Photos / Sounds

Square

What

Black-tailed Prairie Dog Cynomys ludovicianus

Observer

atlnature

Date

August 10, 2019 11:24 AM EDT

Photos / Sounds

Square

What

Desert Horned Viper Cerastes cerastes

Observer

thorhakonsen

Date

May 4, 2019 07:49 PM CEST

Photos / Sounds

Square

What

Field's Horned Viper Pseudocerastes fieldi

Observer

thorhakonsen

Date

May 6, 2019 08:00 PM CEST

Photos / Sounds

Square

What

Schneider's Skink Eumeces schneiderii

Observer

thorhakonsen

Date

May 8, 2019 09:01 AM CEST

Photos / Sounds

Square

What

Human Homo sapiens

Observer

catenatus

Date

July 29, 2019 10:05 PM CDT

Place

Texas, US (Google, OSM)

Description

Weird stuff you find road-cruising for herps...

Photos / Sounds

Square

What

Barking Tree Frog Hyla gratiosa

Observer

r_d_herrington

Date

July 21, 2019 09:24 AM EDT

Photos / Sounds

Square

What

Brown Rat Rattus norvegicus

Observer

masonmaron

Date

July 28, 2019 05:40 PM PDT

Photos / Sounds

Square

What

Black-legged Seriema Chunga burmeisteri

Observer

pipoca1730

Date

September 29, 2018 07:35 AM -03

Description

PP Chancaní, Córdoba, Argentina

Photos / Sounds

Square

What

Red-crested Finch Coryphospingus cucullatus

Observer

pipoca1730

Date

July 22, 2018 11:35 AM -03

Description

RP Quebrada de las Higueritas, San Luis, Argentina

Photos / Sounds

What

Chilean Flamingo Phoenicopterus chilensis

Observer

pipoca1730

Date

September 20, 2015

Description

At Loma de los Indios

Photos / Sounds

What

Black-chinned Hummingbird Archilochus alexandri

Observer

greglasley

Date

July 15, 2019 03:26 PM CDT

Description

This is my fourth posting of this same nest, starting June 26, 2019.
https://www.inaturalist.org/observations/27718328
https://www.inaturalist.org/observations/27780904
https://www.inaturalist.org/observations/28145676
One chick hatched July 3, I think. There are now two chicks in the nest just a few days from fledgling. I'll try to keep some photo records of them as my time permits.

Photos / Sounds

What

Green Heron Butorides virescens

Observer

ryanj85

Date

July 17, 2015 12:19 PM CDT

Description

Green Heron with leucism/albinism.

Photos / Sounds

What

Banded Civet Hemigalus derbyanus

Date

October 10, 2018 06:29 AM EDT

Place

Sabah, MY (Google, OSM)

Photos / Sounds

Square

What

Royal Flycatcher Onychorhynchus coronatus

Observer

cristianrial

Date

April 27, 2014 09:33 AM -05

Description

Bosque denso

Photos / Sounds

What

Secret Toadhead Agama Phrynocephalus mystaceus

Observer

neymark

Date

June 27, 2013

Photos / Sounds

What

Anna's Hummingbird Calypte anna

Observer

masonmaron

Date

July 23, 2019 11:29 AM PDT

Photos / Sounds

What

Townsend's Chipmunk Neotamias townsendii

Observer

masonmaron

Date

July 21, 2019 05:01 PM PDT

Photos / Sounds

Square

What

Blackback Land Crab Gecarcinus lateralis

Observer

world_lineage

Date

June 28, 2019 01:51 AM CDT

Photos / Sounds

Square

What

Familiar Bluet Enallagma civile

Observer

romalu1

Date

July 20, 2019 12:09 PM MDT

Description

mating pair

Photos / Sounds

Square

What

Belted Kingfisher Megaceryle alcyon

Observer

masonmaron

Date

July 21, 2019 06:13 PM PDT

Description

I hope fishing is still allowed.

Photos / Sounds

Square

What

Common Raccoon Procyon lotor

Observer

masonmaron

Date

July 20, 2019 03:54 PM MDT

Photos / Sounds

What

Pacific Viperfish Chauliodus macouni

Observer

alex_bairstow

Date

March 2, 2019 01:56 PM PST

Place

Eel Canyon (Google, OSM)

Description

!!!

Collected in midwater trawl aboard the R/V Coral Sea.

Photos / Sounds

Square

What

Bald Eagle Haliaeetus leucocephalus

Observer

colinpotter

Date

June 13, 2019 01:51 PM PDT

Photos / Sounds

What

Guadalupe Fur Seal Arctocephalus townsendi

Observer

masonmaron

Date

July 13, 2019 12:00 PM PDT

Place

(Somewhere...)

Photos / Sounds

Square

What

Squirrel Tree Frog Hyla squirella

Observer

gtsalmon

Date

January 6, 2016 02:42 PM EST

Description

6 subadults observed resting in a plant (palm frond) 6+ feet above ground level (and adjacent to the group of 13 individuals - next record). With Brian Radenberg. Temperatures in high 60s. Imaged only.

Photos / Sounds

What

Eastern Box Turtle Terrapene carolina ssp. carolina

Date

July 31, 2018 11:43 AM EDT

Place

Maine, US (Google, OSM)

Description

Adult male / Captured on Rabbit Path Rd in Alna Twp by Lynne Flaccus on 7/17/2018 / released at same location on 7/31/18 / collected nail samples for DNA / Habitat is mature hardwood forest bordered by shrubby powerline ROW

Photos / Sounds

What

American Bullfrog Lithobates catesbeianus

Observer

cliygh-and-mia

Date

July 9, 2019 11:24 AM EDT

Description

Adult male which gave the distinctive "Jug-o-rum" call once (How I found it).

Photos / Sounds

Square

What

Prairie Falcon Falco mexicanus

Observer

leehoy

Date

January 5, 2019 08:40 AM CST

Description

Prairie Falcon
Falco mexicanus
Adult Basic Plumage
Davis Mountains
Jeff Davis County, TX
5 January, 2019

Photos / Sounds

Square

What

Black-bellied Salamander Desmognathus quadramaculatus

Observer

c4b

Date

July 3, 2019 09:48 AM PDT

Photos / Sounds

Square

What

Appalachian Salamander Plethodon jordani

Observer

c4b

Date

July 4, 2019 02:48 PM PDT

Photos / Sounds

Square

Observer

gwalschl

Date

July 4, 2019 06:15 AM MST

Photos / Sounds

Square

What

Notched-mouthed Ground Beetles Genus Dicaelus

Observer

c4b

Date

July 3, 2019 09:25 PM PDT

Photos / Sounds

Square

What

Black-bellied Salamander Desmognathus quadramaculatus

Observer

c4b

Date

July 3, 2019 12:45 PM EDT

Photos / Sounds

Square

What

Red Salamander Pseudotriton ruber

Observer

c4b

Date

July 3, 2019 07:08 PM PDT