Running ‘testthat.R’ [0m/10m]
Running the tests in ‘tests/testthat.R’ failed.
Complete output:
  > # This file is part of the standard setup for testthat.
  > # It is recommended that you do not modify it.
  > #
  > # Where should you do additional test configuration?
  > # Learn more about the roles of various files in:
  > # * https://r-pkgs.org/testing-design.html#sec-tests-files-overview
  > # * https://testthat.r-lib.org/articles/special-files.html
  > 
  > library(testthat)
  > library(PFW)
  > 
  > test_check("PFW")
  Filters applied to this dataset:
  
  
  - Filter type:species
    Values:american robin
  
  
  - Filter type:region
    Values:Washington
  
  
  - Filter type:date
  
    year:2022, 2023
  
    month:11, 12, 1, 2
  
  
  
  - Filter type:rollup
    Values:TRUE
  
  
  Date filtering complete.
  Date filtering complete.
  Date filtering complete.
  Date filtering complete.
  [1mDefinition:[0m Unique identifier for each survey site
  
  [1mDescription:[0mEach observation location should have only one LOC_ID. A single observer may maintain more than one LOC_ID. This is the same field as LOC_ID in the site description dataset and can be used to link the observation data to the site description data in conjunction with PROJ_PERIOD_ID.
  
  [1mVariable:[0m   LOC_ID
  
  [1mDescription:[0mEach observation location should have only one LOC_ID. A single observer may maintain more than one LOC_ID. This is the same field as LOC_ID in the site description dataset and can be used to link the observation data to the site description data in conjunction with PROJ_PERIOD_ID.
  
  [1mVariable:[0m   LOC_ID
  
  [1mDefinition:[0m Unique identifier for each survey site
  
  [1mDefinition:[0m Unique identifier for each survey site
  
  [1mDescription:[0mEach observation location should have only one LOC_ID. A single observer may maintain more than one LOC_ID. This is the same field as LOC_ID in the site description dataset and can be used to link the observation data to the site description data in conjunction with PROJ_PERIOD_ID.
  
  
  [1mVariable:[0m   LATITUDE
  
  [1mDefinition:[0m Latitude in decimal degrees for each survey site
  
  [1mDescription:[0mAccuracy varies. See ENTRY_TECHNIQUE below. 
  
  
  [1mVariable:[0m   LONGITUDE
  
  [1mDefinition:[0m Longitude in decimal degrees for each survey site
  
  [1mDescription:[0mAccuracy varies. See ENTRY_TECHNIQUE below. 
  
  
  [1mVariable:[0m   SUBNATIONAL1_CODE
  
  [1mDefinition:[0m Country abbreviation and State or Province abbreviation of each survey site
  
  [1mDescription:[0mFormat XX-XX where the left two letters indicate the country and the right two letters indicate the state or province code. E.g., CA-ON = Canada - Ontario
  
  
  [1mVariable:[0m   ENTRY_TECHNIQUE
  
  [1mDefinition:[0m Variable indicating method of site localization
  
  [1mDescription:[0mCodes represent dozens of methods for site creation with varying degrees of specificity. These methods continue to evolve as online mapping technologies change. The most accurate locations have higher "zoom level" values (e.g., Google Map Zoom level 9). Note that postal code locations were geolocated at the centroid of the postal code within which the site is located (i.e., these sites lack accuracy and are not useful if you are trying to link to site to satellite-derived land cover data, for instance).
  
  
  [1mVariable:[0m   SUB_ID
  
  [1mDefinition:[0m Unique identifier for each checklist
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   OBS_ID
  
  [1mDefinition:[0m Unique identifier for each observation of a species
  
  [1mDescription:[0mOne SUB_ID will have as many OBS_ID values as there were species reported on a given checklist. 
  
  
  [1mVariable:[0m   MONTH
  
  [1mDefinition:[0m Month of 1st day of two-day observation period
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   DAY
  
  [1mDefinition:[0m Day of 1st day of two-day observation period
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   YEAR
  
  [1mDefinition:[0m Year of 1st day of two-day observation period
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   PROJ_PERIOD_ID
  
  [1mDefinition:[0m Calendar year of end of FeederWatch season
  
  [1mDescription:[0mIn the format 'PFW_2019' where PFW = Project FeederWatch. The year indicates the FeederWatch season which is defined as the year the season ended. E.g., the November 2018 through April 2019 season is labeled 'PFW_2019'. This is the same field as PROJ_PERIOD_ID in the site description dataset and can be used to link the observation data to the site description data in conjunction with LOC_ID.
  
  
  [1mVariable:[0m   SPECIES_CODE
  
  [1mDefinition:[0m Bird species observed, stored as 6-letter species codes
  
  [1mDescription:[0mSpecies codes are based on the eBird taxonomy. See "Species Codes" tab below for code translations. 
  
  
  [1mVariable:[0m   alt_full_spp_code
  
  [1mDefinition:[0m Alternate code for bird species observed, lumping subspecies/recognizable forms
  
  [1mDescription:[0mThis column enables someone to "roll up" information on subspecies and recognizable forms into the species code of the full species instead of the code for the recognizable form. The species code values for the subspecies/forms are still the primary information stored in the column SPECIES_CODE, but the alternate code for the full species is available in the column immediately to its right.
  
  
  [1mVariable:[0m   HOW_MANY
  
  [1mDefinition:[0m Maximum number of individuals seen at one time during observation period
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   VALID
  
  [1mDefinition:[0m Validity of each observation based on flagging system
  
  [1mDescription:[0m1 = observation did not trigger the automated review system or was reviewed and approved. 0 = observation triggered the automated review system and has either not been reviewed or was reviewed and left as 'invalid'. Use 0 records with extreme caution. Details of the review process: Bonter, D.N. and C.B. Cooper. 2012. Data validation in citizen science: A case study from Project FeederWatch. Frontiers in Ecology and the Environment 10:305-307.
  
  
  [1mVariable:[0m   REVIEWED
  
  [1mDefinition:[0m Review state of each observation based on flagging system
  
  [1mDescription:[0m1 = observation was reviewed by FeederWatch staff. 0 = observation either did not trigger the automated review system or has not yet been reviewed. Details of the review process: Bonter, D.N. and C.B. Cooper. 2012. Data validation in citizen science: A case study from Project FeederWatch. Frontiers in Ecology and the Environment 10:305-307.
  
  
  [1mVariable:[0m   PLUS_CODE
  
  [1mDefinition:[0m Variable indicating if the total number of a species seen was larger than the value reported
  
  [1mDescription:[0mData field used on historic paper data forms (no longer being populated). Due to space limitations of the paper forms, some large flock sizes could not be recorded accurately. In such a case, the "PLUS_CODE" field is coded as '1', indicating that the number of birds seen was larger than that reported in the "HOW_MANY" field. Observations where PLUS_CODE = 1 and HOW_MANY = 9, 90, 99, or 999 should be used with caution. 
  
  
  [1mVariable:[0m   DAY1_AM
  
  [1mDefinition:[0m Variable indicating if observer watched during morning of count Day 1
  
  [1mDescription:[0m0 = observer did not watch their feeders during the morning of Day 1; 1 = observer did watch their feeders during this time interval. We suggest adding the values in the DAY1_AM, DAY1_PM, DAY2_AM and DAY2_PM fields into an aggregated measure of effort indicating the number of half days of observation effort (range = 1-4). 
  
  
  [1mVariable:[0m   DAY1_PM
  
  [1mDefinition:[0m Variable indicating if observer watched during afternoon of count Day 1
  
  [1mDescription:[0mSee DAY1_AM
  
  
  [1mVariable:[0m   DAY2_AM
  
  [1mDefinition:[0m Variable indicating if observer watched during morning of count Day 2
  
  [1mDescription:[0mSee DAY1_AM
  
  
  [1mVariable:[0m   DAY2_PM
  
  [1mDefinition:[0m Variable indicating if observer watched during afternoon of count Day 2
  
  [1mDescription:[0mSee DAY1_AM
  
  
  [1mVariable:[0m   EFFORT_HRS_ATLEAST
  
  [1mDefinition:[0m Participant estimate of survey time  for each checklist
  
  [1mDescription:[0mA second measure of observation effort. Categorical: 0.001 = less than 1 hour of observation during the 2-day count period;   1.001 = 1 to 4 hours of observation; 4.001 = 4 to 8 hours of observation; 8.001 = greater than 8 hours of observation. 
  
  
  [1mVariable:[0m   SNOW_DEP_ATLEAST
  
  [1mDefinition:[0m Participant estimate of minimum snow depth during a checklist
  
  [1mDescription:[0mAn estimate of snow depth. Categorical: . = null; 0 = none; 0.001 = less than 5 cm; 5.000 = 5 to 15 cm; 15.001 = greater than 15 cm
  
  
  [1mVariable:[0m   DATA_ENTRY_METHOD
  
  [1mDefinition:[0m Data entry method for each checklist (e.g., web, mobile app or paper form)
  
  [1mDescription:[0mAs of 2020, the three modes of data entry for the dataset include paper data forms (field value indicates 'paper'), the FeederWatch website (field value indicates various versions of 'Web' entry), or the mobile phone app (field value indicates various versions of 'Mobile' entry). 
  
  
  [1mVariable:[0m   Yard_type
  
  [1mDefinition:[0m Variables indicating features of yard (*five fields)
  
  [1mDescription:[0m0 = absent, 1 = present for each category of yard type: Pavement (no vegetation), garden or courtyard, landscaped yard, natural vegetation, natural or landscaped desert.
  
  
  [1mVariable:[0m   Habitat_type
  
  [1mDefinition:[0m Variables indicating features of surrounding habitat (*fourteen fields)
  
  [1mDescription:[0m0 = absent, 1 = present for the following habitat types located within 0.5 miles of the count site: deciduous woods, evergreen woods, mixed deciduous-evergreen woods, orchard, park, fresh water, salt water, residential area, industrial or commercial, agricultural fields, desert or scrub, secondary growth woods, swamp (wooded), marsh).
  
  
  [1mVariable:[0m   Trees/shrubs
  
  [1mDefinition:[0m Variables indicating types of surrounding vegetation (*six fields)
  
  [1mDescription:[0mMinimum number of trees or shrubs of various types within the count area. EVGR = evergreen; DCID = deciduous, FRU = fruit, CACTI = cacti. Note that this field has been inconsistently recorded over time. Current (2020) categories: 0, 1-3, 4-10, > 10.
  
  
  [1mVariable:[0m   Brush/water
  
  [1mDefinition:[0m Variables indicating presence of brush piles or water sources (*three fields)
  
  [1mDescription:[0mCategorical. Minimum number of brush piles, water sources, and bird baths located within the count area. Note that categories changed slightly over the years. Generally, categories represent: 0, 1-3, 4-10, > 10.
  
  
  [1mVariable:[0m   NEARBY_FEEDERS
  
  [1mDefinition:[0m Variable indicating if other feeders are regularly operated within 90m of survey site
  
  [1mDescription:[0mPresent or absence of feeders (others than those maintained by the participant) within 90 m of the count site. 0 = feeders absent, 1 = feeders present. 
  
  
  [1mVariable:[0m   Other_animals
  
  [1mDefinition:[0m Variables indicating if squirrels, cats, dogs or humans are at the survey site (*four fields)
  
  [1mDescription:[0m0 = no, 1 = yes. Do squirrels take food from feeders at least 3 times per week? Are cats, dogs, or humans active within 30 m of the feeders for at least 30 minutes 3 days per week? 
  
  
  [1mVariable:[0m   HOUSING_DENSITY
  
  [1mDefinition:[0m Participant estimated housing density of neighborhood
  
  [1mDescription:[0mParticipant-defined description of the housing density of the neighborhood. 1 = "rural", 2 = "rural/suburban", 3 = "suburban", 4 = "urban"
  
  
  [1mVariable:[0m   Feeding_schedule
  
  [1mDefinition:[0m Variables indicating which months of the year participants provide food (*thirteen fields)
  
  [1mDescription:[0m0 = no, 1 = yes. Response to the following question for each month, "I provided food in my count site at least once per week." Note that the field indicating whether or not the participant provides food year-round (FED_YR_ROUND) has not be consistently applied throughout the history of the project. 
  
  
  [1mVariable:[0m   Feeder_numbers_by_type
  
  [1mDefinition:[0m Variables indicating the number and types of feeders provided (*eight fields)
  
  [1mDescription:[0mParticipants report the number of feeders maintained within their count site. Suet or fat feeders, ground feeding sites, hanging feeders, platform feeders, sugar water feeders (HUMMING), water dispensers (field retired in 2005), thistle feeders (field retired in 2005), fruit feeders. 
  
  
  [1mVariable:[0m   POPULATION_ATLEAST
  
  [1mDefinition:[0m Participant estimated population of city or town
  
  [1mDescription:[0m1 = less than 5,000; 5001 = 5,001 - 25,000; 25001 = 25,001 - 100,000; 100001 = > 100,000.
  
  
  [1mVariable:[0m   COUNT_AREA_SIZE_SQ_M_ATLEAST
  
  [1mDefinition:[0m Participant estimated area of survey site
  
  [1mDescription:[0m0.01 = < 1 square meter; 1.01 = 1 to 100 square meters; 100.01 = 100 - 375 square meters; 375.01 = > 375 square meters
  
  
  [1mVariable:[0m   CREATION_DT
  
  [1mDefinition:[0m Date of site creation
  
  [1mDescription:[0mAll sites created prior to 2001 are listed as created in 2001.
  
  
  [1mVariable:[0m   LAST_EDITED_DT
  
  [1mDefinition:[0m Date of last site location edit
  
  [1mDescription:[0mLists the most recent date site-specific data was edited.
  
  
  [1mVariable:[0m   supp_food
  
  [1mDefinition:[0m Participant indicates whether supplementary food was provided (1) or not provided (0) at the site
  
  [1mDescription:[0mVariable added during the 2021-2022 FeederWatch season, this variable allows people to indicate if they watched birds within a fixed area but did not provide supplemental food (i.e., watching an area that they landscaped for birds but with no direct bird feeding). 1 = supplemental food provided, 0 = supplemental food NOT provided, null before the 2021-22 season could be interpreted as food provided because FeederWatch was explicitly focused on bird feeding stations. 
  
  
  [1mVariable:[0m   LOC_ID
  
  [1mDescription:[0mEach observation location should have only one LOC_ID. A single observer may maintain more than one LOC_ID. This is the same field as LOC_ID in the site description dataset and can be used to link the observation data to the site description data in conjunction with PROJ_PERIOD_ID.
  
  
  [1mVariable:[0m   LATITUDE
  
  [1mDefinition:[0m Latitude in decimal degrees for each survey site
  
  [1mDescription:[0mAccuracy varies. See ENTRY_TECHNIQUE below. 
  
  
  [1mVariable:[0m   LONGITUDE
  
  [1mDefinition:[0m Longitude in decimal degrees for each survey site
  
  [1mDescription:[0mAccuracy varies. See ENTRY_TECHNIQUE below. 
  
  
  [1mVariable:[0m   SUBNATIONAL1_CODE
  
  [1mDefinition:[0m Country abbreviation and State or Province abbreviation of each survey site
  
  [1mDescription:[0mFormat XX-XX where the left two letters indicate the country and the right two letters indicate the state or province code. E.g., CA-ON = Canada - Ontario
  
  
  [1mVariable:[0m   ENTRY_TECHNIQUE
  
  [1mDefinition:[0m Variable indicating method of site localization
  
  [1mDescription:[0mCodes represent dozens of methods for site creation with varying degrees of specificity. These methods continue to evolve as online mapping technologies change. The most accurate locations have higher "zoom level" values (e.g., Google Map Zoom level 9). Note that postal code locations were geolocated at the centroid of the postal code within which the site is located (i.e., these sites lack accuracy and are not useful if you are trying to link to site to satellite-derived land cover data, for instance).
  
  
  [1mVariable:[0m   SUB_ID
  
  [1mDefinition:[0m Unique identifier for each checklist
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   OBS_ID
  
  [1mDefinition:[0m Unique identifier for each observation of a species
  
  [1mDescription:[0mOne SUB_ID will have as many OBS_ID values as there were species reported on a given checklist. 
  
  
  [1mVariable:[0m   MONTH
  
  [1mDefinition:[0m Month of 1st day of two-day observation period
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   DAY
  
  [1mDefinition:[0m Day of 1st day of two-day observation period
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   YEAR
  
  [1mDefinition:[0m Year of 1st day of two-day observation period
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   PROJ_PERIOD_ID
  
  [1mDefinition:[0m Calendar year of end of FeederWatch season
  
  [1mDescription:[0mIn the format 'PFW_2019' where PFW = Project FeederWatch. The year indicates the FeederWatch season which is defined as the year the season ended. E.g., the November 2018 through April 2019 season is labeled 'PFW_2019'. This is the same field as PROJ_PERIOD_ID in the site description dataset and can be used to link the observation data to the site description data in conjunction with LOC_ID.
  
  
  [1mVariable:[0m   SPECIES_CODE
  
  [1mDefinition:[0m Bird species observed, stored as 6-letter species codes
  
  [1mDescription:[0mSpecies codes are based on the eBird taxonomy. See "Species Codes" tab below for code translations. 
  
  
  [1mVariable:[0m   alt_full_spp_code
  
  [1mDefinition:[0m Alternate code for bird species observed, lumping subspecies/recognizable forms
  
  [1mDescription:[0mThis column enables someone to "roll up" information on subspecies and recognizable forms into the species code of the full species instead of the code for the recognizable form. The species code values for the subspecies/forms are still the primary information stored in the column SPECIES_CODE, but the alternate code for the full species is available in the column immediately to its right.
  
  
  [1mVariable:[0m   HOW_MANY
  
  [1mDefinition:[0m Maximum number of individuals seen at one time during observation period
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   VALID
  
  [1mDefinition:[0m Validity of each observation based on flagging system
  
  [1mDescription:[0m1 = observation did not trigger the automated review system or was reviewed and approved. 0 = observation triggered the automated review system and has either not been reviewed or was reviewed and left as 'invalid'. Use 0 records with extreme caution. Details of the review process: Bonter, D.N. and C.B. Cooper. 2012. Data validation in citizen science: A case study from Project FeederWatch. Frontiers in Ecology and the Environment 10:305-307.
  
  
  [1mVariable:[0m   REVIEWED
  
  [1mDefinition:[0m Review state of each observation based on flagging system
  
  [1mDescription:[0m1 = observation was reviewed by FeederWatch staff. 0 = observation either did not trigger the automated review system or has not yet been reviewed. Details of the review process: Bonter, D.N. and C.B. Cooper. 2012. Data validation in citizen science: A case study from Project FeederWatch. Frontiers in Ecology and the Environment 10:305-307.
  
  
  [1mVariable:[0m   PLUS_CODE
  
  [1mDefinition:[0m Variable indicating if the total number of a species seen was larger than the value reported
  
  [1mDescription:[0mData field used on historic paper data forms (no longer being populated). Due to space limitations of the paper forms, some large flock sizes could not be recorded accurately. In such a case, the "PLUS_CODE" field is coded as '1', indicating that the number of birds seen was larger than that reported in the "HOW_MANY" field. Observations where PLUS_CODE = 1 and HOW_MANY = 9, 90, 99, or 999 should be used with caution. 
  
  
  [1mVariable:[0m   DAY1_AM
  
  [1mDefinition:[0m Variable indicating if observer watched during morning of count Day 1
  
  [1mDescription:[0m0 = observer did not watch their feeders during the morning of Day 1; 1 = observer did watch their feeders during this time interval. We suggest adding the values in the DAY1_AM, DAY1_PM, DAY2_AM and DAY2_PM fields into an aggregated measure of effort indicating the number of half days of observation effort (range = 1-4). 
  
  
  [1mVariable:[0m   DAY1_PM
  
  [1mDefinition:[0m Variable indicating if observer watched during afternoon of count Day 1
  
  [1mDescription:[0mSee DAY1_AM
  
  
  [1mVariable:[0m   DAY2_AM
  
  [1mDefinition:[0m Variable indicating if observer watched during morning of count Day 2
  
  [1mDescription:[0mSee DAY1_AM
  
  
  [1mVariable:[0m   DAY2_PM
  
  [1mDefinition:[0m Variable indicating if observer watched during afternoon of count Day 2
  
  [1mDescription:[0mSee DAY1_AM
  
  
  [1mVariable:[0m   EFFORT_HRS_ATLEAST
  
  [1mDefinition:[0m Participant estimate of survey time  for each checklist
  
  [1mDescription:[0mA second measure of observation effort. Categorical: 0.001 = less than 1 hour of observation during the 2-day count period;   1.001 = 1 to 4 hours of observation; 4.001 = 4 to 8 hours of observation; 8.001 = greater than 8 hours of observation. 
  
  
  [1mVariable:[0m   SNOW_DEP_ATLEAST
  
  [1mDefinition:[0m Participant estimate of minimum snow depth during a checklist
  
  [1mDescription:[0mAn estimate of snow depth. Categorical: . = null; 0 = none; 0.001 = less than 5 cm; 5.000 = 5 to 15 cm; 15.001 = greater than 15 cm
  
  
  [1mVariable:[0m   DATA_ENTRY_METHOD
  
  [1mDefinition:[0m Data entry method for each checklist (e.g., web, mobile app or paper form)
  
  [1mDescription:[0mAs of 2020, the three modes of data entry for the dataset include paper data forms (field value indicates 'paper'), the FeederWatch website (field value indicates various versions of 'Web' entry), or the mobile phone app (field value indicates various versions of 'Mobile' entry). 
  
  
  [1mVariable:[0m   Yard_type
  
  [1mDefinition:[0m Variables indicating features of yard (*five fields)
  
  [1mDescription:[0m0 = absent, 1 = present for each category of yard type: Pavement (no vegetation), garden or courtyard, landscaped yard, natural vegetation, natural or landscaped desert.
  
  
  [1mVariable:[0m   Habitat_type
  
  [1mDefinition:[0m Variables indicating features of surrounding habitat (*fourteen fields)
  
  [1mDescription:[0m0 = absent, 1 = present for the following habitat types located within 0.5 miles of the count site: deciduous woods, evergreen woods, mixed deciduous-evergreen woods, orchard, park, fresh water, salt water, residential area, industrial or commercial, agricultural fields, desert or scrub, secondary growth woods, swamp (wooded), marsh).
  
  
  [1mVariable:[0m   Trees/shrubs
  
  [1mDefinition:[0m Variables indicating types of surrounding vegetation (*six fields)
  
  [1mDescription:[0mMinimum number of trees or shrubs of various types within the count area. EVGR = evergreen; DCID = deciduous, FRU = fruit, CACTI = cacti. Note that this field has been inconsistently recorded over time. Current (2020) categories: 0, 1-3, 4-10, > 10.
  
  
  [1mVariable:[0m   Brush/water
  
  [1mDefinition:[0m Variables indicating presence of brush piles or water sources (*three fields)
  
  [1mDescription:[0mCategorical. Minimum number of brush piles, water sources, and bird baths located within the count area. Note that categories changed slightly over the years. Generally, categories represent: 0, 1-3, 4-10, > 10.
  
  
  [1mVariable:[0m   NEARBY_FEEDERS
  
  [1mDefinition:[0m Variable indicating if other feeders are regularly operated within 90m of survey site
  
  [1mDescription:[0mPresent or absence of feeders (others than those maintained by the participant) within 90 m of the count site. 0 = feeders absent, 1 = feeders present. 
  
  
  [1mVariable:[0m   Other_animals
  
  [1mDefinition:[0m Variables indicating if squirrels, cats, dogs or humans are at the survey site (*four fields)
  
  [1mDescription:[0m0 = no, 1 = yes. Do squirrels take food from feeders at least 3 times per week? Are cats, dogs, or humans active within 30 m of the feeders for at least 30 minutes 3 days per week? 
  
  
  [1mVariable:[0m   HOUSING_DENSITY
  
  [1mDefinition:[0m Participant estimated housing density of neighborhood
  
  [1mDescription:[0mParticipant-defined description of the housing density of the neighborhood. 1 = "rural", 2 = "rural/suburban", 3 = "suburban", 4 = "urban"
  
  
  [1mVariable:[0m   Feeding_schedule
  
  [1mDefinition:[0m Variables indicating which months of the year participants provide food (*thirteen fields)
  
  [1mDescription:[0m0 = no, 1 = yes. Response to the following question for each month, "I provided food in my count site at least once per week." Note that the field indicating whether or not the participant provides food year-round (FED_YR_ROUND) has not be consistently applied throughout the history of the project. 
  
  
  [1mVariable:[0m   Feeder_numbers_by_type
  
  [1mDefinition:[0m Variables indicating the number and types of feeders provided (*eight fields)
  
  [1mDescription:[0mParticipants report the number of feeders maintained within their count site. Suet or fat feeders, ground feeding sites, hanging feeders, platform feeders, sugar water feeders (HUMMING), water dispensers (field retired in 2005), thistle feeders (field retired in 2005), fruit feeders. 
  
  
  [1mVariable:[0m   POPULATION_ATLEAST
  
  [1mDefinition:[0m Participant estimated population of city or town
  
  [1mDescription:[0m1 = less than 5,000; 5001 = 5,001 - 25,000; 25001 = 25,001 - 100,000; 100001 = > 100,000.
  
  
  [1mVariable:[0m   COUNT_AREA_SIZE_SQ_M_ATLEAST
  
  [1mDefinition:[0m Participant estimated area of survey site
  
  [1mDescription:[0m0.01 = < 1 square meter; 1.01 = 1 to 100 square meters; 100.01 = 100 - 375 square meters; 375.01 = > 375 square meters
  
  
  [1mVariable:[0m   CREATION_DT
  
  [1mDefinition:[0m Date of site creation
  
  [1mDescription:[0mAll sites created prior to 2001 are listed as created in 2001.
  
  
  [1mVariable:[0m   LAST_EDITED_DT
  
  [1mDefinition:[0m Date of last site location edit
  
  [1mDescription:[0mLists the most recent date site-specific data was edited.
  
  
  [1mVariable:[0m   supp_food
  
  [1mDefinition:[0m Participant indicates whether supplementary food was provided (1) or not provided (0) at the site
  
  [1mDescription:[0mVariable added during the 2021-2022 FeederWatch season, this variable allows people to indicate if they watched birds within a fixed area but did not provide supplemental food (i.e., watching an area that they landscaped for birds but with no direct bird feeding). 1 = supplemental food provided, 0 = supplemental food NOT provided, null before the 2021-22 season could be interpreted as food provided because FeederWatch was explicitly focused on bird feeding stations. 
  
  
  [1mVariable:[0m   LOC_ID
  
  [1mDefinition:[0m Unique identifier for each survey site
  
  [1mVariable:[0m   LATITUDE
  
  [1mDefinition:[0m Latitude in decimal degrees for each survey site
  
  [1mDescription:[0mAccuracy varies. See ENTRY_TECHNIQUE below. 
  
  
  [1mVariable:[0m   LONGITUDE
  
  [1mDefinition:[0m Longitude in decimal degrees for each survey site
  
  [1mDescription:[0mAccuracy varies. See ENTRY_TECHNIQUE below. 
  
  
  [1mVariable:[0m   SUBNATIONAL1_CODE
  
  [1mDefinition:[0m Country abbreviation and State or Province abbreviation of each survey site
  
  [1mDescription:[0mFormat XX-XX where the left two letters indicate the country and the right two letters indicate the state or province code. E.g., CA-ON = Canada - Ontario
  
  
  [1mVariable:[0m   ENTRY_TECHNIQUE
  
  [1mDefinition:[0m Variable indicating method of site localization
  
  [1mDescription:[0mCodes represent dozens of methods for site creation with varying degrees of specificity. These methods continue to evolve as online mapping technologies change. The most accurate locations have higher "zoom level" values (e.g., Google Map Zoom level 9). Note that postal code locations were geolocated at the centroid of the postal code within which the site is located (i.e., these sites lack accuracy and are not useful if you are trying to link to site to satellite-derived land cover data, for instance).
  
  
  [1mVariable:[0m   SUB_ID
  
  [1mDefinition:[0m Unique identifier for each checklist
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   OBS_ID
  
  [1mDefinition:[0m Unique identifier for each observation of a species
  
  [1mDescription:[0mOne SUB_ID will have as many OBS_ID values as there were species reported on a given checklist. 
  
  
  [1mVariable:[0m   MONTH
  
  [1mDefinition:[0m Month of 1st day of two-day observation period
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   DAY
  
  [1mDefinition:[0m Day of 1st day of two-day observation period
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   YEAR
  
  [1mDefinition:[0m Year of 1st day of two-day observation period
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   PROJ_PERIOD_ID
  
  [1mDefinition:[0m Calendar year of end of FeederWatch season
  
  [1mDescription:[0mIn the format 'PFW_2019' where PFW = Project FeederWatch. The year indicates the FeederWatch season which is defined as the year the season ended. E.g., the November 2018 through April 2019 season is labeled 'PFW_2019'. This is the same field as PROJ_PERIOD_ID in the site description dataset and can be used to link the observation data to the site description data in conjunction with LOC_ID.
  
  
  [1mVariable:[0m   SPECIES_CODE
  
  [1mDefinition:[0m Bird species observed, stored as 6-letter species codes
  
  [1mDescription:[0mSpecies codes are based on the eBird taxonomy. See "Species Codes" tab below for code translations. 
  
  
  [1mVariable:[0m   alt_full_spp_code
  
  [1mDefinition:[0m Alternate code for bird species observed, lumping subspecies/recognizable forms
  
  [1mDescription:[0mThis column enables someone to "roll up" information on subspecies and recognizable forms into the species code of the full species instead of the code for the recognizable form. The species code values for the subspecies/forms are still the primary information stored in the column SPECIES_CODE, but the alternate code for the full species is available in the column immediately to its right.
  
  
  [1mVariable:[0m   HOW_MANY
  
  [1mDefinition:[0m Maximum number of individuals seen at one time during observation period
  
  [1mDescription:[0m
  
  
  [1mVariable:[0m   VALID
  
  [1mDefinition:[0m Validity of each observation based on flagging system
  
  [1mDescription:[0m1 = observation did not trigger the automated review system or was reviewed and approved. 0 = observation triggered the automated review system and has either not been reviewed or was reviewed and left as 'invalid'. Use 0 records with extreme caution. Details of the review process: Bonter, D.N. and C.B. Cooper. 2012. Data validation in citizen science: A case study from Project FeederWatch. Frontiers in Ecology and the Environment 10:305-307.
  
  
  [1mVariable:[0m   REVIEWED
  
  [1mDefinition:[0m Review state of each observation based on flagging system
  
  [1mDescription:[0m1 = observation was reviewed by FeederWatch staff. 0 = observation either did not trigger the automated review system or has not yet been reviewed. Details of the review process: Bonter, D.N. and C.B. Cooper. 2012. Data validation in citizen science: A case study from Project FeederWatch. Frontiers in Ecology and the Environment 10:305-307.
  
  
  [1mVariable:[0m   PLUS_CODE
  
  [1mDefinition:[0m Variable indicating if the total number of a species seen was larger than the value reported
  
  [1mDescription:[0mData field used on historic paper data forms (no longer being populated). Due to space limitations of the paper forms, some large flock sizes could not be recorded accurately. In such a case, the "PLUS_CODE" field is coded as '1', indicating that the number of birds seen was larger than that reported in the "HOW_MANY" field. Observations where PLUS_CODE = 1 and HOW_MANY = 9, 90, 99, or 999 should be used with caution. 
  
  
  [1mVariable:[0m   DAY1_AM
  
  [1mDefinition:[0m Variable indicating if observer watched during morning of count Day 1
  
  [1mDescription:[0m0 = observer did not watch their feeders during the morning of Day 1; 1 = observer did watch their feeders during this time interval. We suggest adding the values in the DAY1_AM, DAY1_PM, DAY2_AM and DAY2_PM fields into an aggregated measure of effort indicating the number of half days of observation effort (range = 1-4). 
  
  
  [1mVariable:[0m   DAY1_PM
  
  [1mDefinition:[0m Variable indicating if observer watched during afternoon of count Day 1
  
  [1mDescription:[0mSee DAY1_AM
  
  
  [1mVariable:[0m   DAY2_AM
  
  [1mDefinition:[0m Variable indicating if observer watched during morning of count Day 2
  
  [1mDescription:[0mSee DAY1_AM
  
  
  [1mVariable:[0m   DAY2_PM
  
  [1mDefinition:[0m Variable indicating if observer watched during afternoon of count Day 2
  
  [1mDescription:[0mSee DAY1_AM
  
  
  [1mVariable:[0m   EFFORT_HRS_ATLEAST
  
  [1mDefinition:[0m Participant estimate of survey time  for each checklist
  
  [1mDescription:[0mA second measure of observation effort. Categorical: 0.001 = less than 1 hour of observation during the 2-day count period;   1.001 = 1 to 4 hours of observation; 4.001 = 4 to 8 hours of observation; 8.001 = greater than 8 hours of observation. 
  
  
  [1mVariable:[0m   SNOW_DEP_ATLEAST
  
  [1mDefinition:[0m Participant estimate of minimum snow depth during a checklist
  
  [1mDescription:[0mAn estimate of snow depth. Categorical: . = null; 0 = none; 0.001 = less than 5 cm; 5.000 = 5 to 15 cm; 15.001 = greater than 15 cm
  
  
  [1mVariable:[0m   DATA_ENTRY_METHOD
  
  [1mDefinition:[0m Data entry method for each checklist (e.g., web, mobile app or paper form)
  
  [1mDescription:[0mAs of 2020, the three modes of data entry for the dataset include paper data forms (field value indicates 'paper'), the FeederWatch website (field value indicates various versions of 'Web' entry), or the mobile phone app (field value indicates various versions of 'Mobile' entry). 
  
  
  [1mVariable:[0m   Yard_type
  
  [1mDefinition:[0m Variables indicating features of yard (*five fields)
  
  [1mDescription:[0m0 = absent, 1 = present for each category of yard type: Pavement (no vegetation), garden or courtyard, landscaped yard, natural vegetation, natural or landscaped desert.
  
  
  [1mVariable:[0m   Habitat_type
  
  [1mDefinition:[0m Variables indicating features of surrounding habitat (*fourteen fields)
  
  [1mDescription:[0m0 = absent, 1 = present for the following habitat types located within 0.5 miles of the count site: deciduous woods, evergreen woods, mixed deciduous-evergreen woods, orchard, park, fresh water, salt water, residential area, industrial or commercial, agricultural fields, desert or scrub, secondary growth woods, swamp (wooded), marsh).
  
  
  [1mVariable:[0m   Trees/shrubs
  
  [1mDefinition:[0m Variables indicating types of surrounding vegetation (*six fields)
  
  [1mDescription:[0mMinimum number of trees or shrubs of various types within the count area. EVGR = evergreen; DCID = deciduous, FRU = fruit, CACTI = cacti. Note that this field has been inconsistently recorded over time. Current (2020) categories: 0, 1-3, 4-10, > 10.
  
  
  [1mVariable:[0m   Brush/water
  
  [1mDefinition:[0m Variables indicating presence of brush piles or water sources (*three fields)
  
  [1mDescription:[0mCategorical. Minimum number of brush piles, water sources, and bird baths located within the count area. Note that categories changed slightly over the years. Generally, categories represent: 0, 1-3, 4-10, > 10.
  
  
  [1mVariable:[0m   NEARBY_FEEDERS
  
  [1mDefinition:[0m Variable indicating if other feeders are regularly operated within 90m of survey site
  
  [1mDescription:[0mPresent or absence of feeders (others than those maintained by the participant) within 90 m of the count site. 0 = feeders absent, 1 = feeders present. 
  
  
  [1mVariable:[0m   Other_animals
  
  [1mDefinition:[0m Variables indicating if squirrels, cats, dogs or humans are at the survey site (*four fields)
  
  [1mDescription:[0m0 = no, 1 = yes. Do squirrels take food from feeders at least 3 times per week? Are cats, dogs, or humans active within 30 m of the feeders for at least 30 minutes 3 days per week? 
  
  
  [1mVariable:[0m   HOUSING_DENSITY
  
  [1mDefinition:[0m Participant estimated housing density of neighborhood
  
  [1mDescription:[0mParticipant-defined description of the housing density of the neighborhood. 1 = "rural", 2 = "rural/suburban", 3 = "suburban", 4 = "urban"
  
  
  [1mVariable:[0m   Feeding_schedule
  
  [1mDefinition:[0m Variables indicating which months of the year participants provide food (*thirteen fields)
  
  [1mDescription:[0m0 = no, 1 = yes. Response to the following question for each month, "I provided food in my count site at least once per week." Note that the field indicating whether or not the participant provides food year-round (FED_YR_ROUND) has not be consistently applied throughout the history of the project. 
  
  
  [1mVariable:[0m   Feeder_numbers_by_type
  
  [1mDefinition:[0m Variables indicating the number and types of feeders provided (*eight fields)
  
  [1mDescription:[0mParticipants report the number of feeders maintained within their count site. Suet or fat feeders, ground feeding sites, hanging feeders, platform feeders, sugar water feeders (HUMMING), water dispensers (field retired in 2005), thistle feeders (field retired in 2005), fruit feeders. 
  
  
  [1mVariable:[0m   POPULATION_ATLEAST
  
  [1mDefinition:[0m Participant estimated population of city or town
  
  [1mDescription:[0m1 = less than 5,000; 5001 = 5,001 - 25,000; 25001 = 25,001 - 100,000; 100001 = > 100,000.
  
  
  [1mVariable:[0m   COUNT_AREA_SIZE_SQ_M_ATLEAST
  
  [1mDefinition:[0m Participant estimated area of survey site
  
  [1mDescription:[0m0.01 = < 1 square meter; 1.01 = 1 to 100 square meters; 100.01 = 100 - 375 square meters; 375.01 = > 375 square meters
  
  
  [1mVariable:[0m   CREATION_DT
  
  [1mDefinition:[0m Date of site creation
  
  [1mDescription:[0mAll sites created prior to 2001 are listed as created in 2001.
  
  
  [1mVariable:[0m   LAST_EDITED_DT
  
  [1mDefinition:[0m Date of last site location edit
  
  [1mDescription:[0mLists the most recent date site-specific data was edited.
  
  
  [1mVariable:[0m   supp_food
  
  [1mDefinition:[0m Participant indicates whether supplementary food was provided (1) or not provided (0) at the site
  
  [1mDescription:[0mVariable added during the 2021-2022 FeederWatch season, this variable allows people to indicate if they watched birds within a fixed area but did not provide supplemental food (i.e., watching an area that they landscaped for birds but with no direct bird feeding). 1 = supplemental food provided, 0 = supplemental food NOT provided, null before the 2021-22 season could be interpreted as food provided because FeederWatch was explicitly focused on bird feeding stations. 
  
  
  Taxonomic rollup complete. 0 ambiguous records removed.
  1 species successfully filtered.
  Filtering complete. 2 records remaining.
  1 regions successfully filtered.
  Taxonomic rollup complete. 0 ambiguous records removed.
  Filtering complete. 1 records remaining.
  1 regions successfully filtered.
  Taxonomic rollup complete. 0 ambiguous records removed.
  1 species successfully filtered.
  Filtering complete. 1 records remaining.
  Date filtering complete.
  Taxonomic rollup complete. 0 ambiguous records removed.
  Filtering complete. 4 records remaining.
  Taxonomic rollup complete. 0 ambiguous records removed.
  Filtering complete. 5 records remaining.
  Filtering complete. 3 records remaining.
  0 regions successfully filtered.
  Taxonomic rollup complete. 0 ambiguous records removed.
  Species selected in filter but absent from input data: Song Sparrow
  0 species successfully filtered.
  Filtering complete. 0 records remaining.
  1 regions successfully filtered.
  Date filtering complete.
  Taxonomic rollup complete. 0 ambiguous records removed.
  1 species successfully filtered.
  Filtering complete. 1 records remaining.
  Reading: /tmp/RtmpdtNhph/file3de0f47369daf5/test1.csv
  Reading: /tmp/RtmpdtNhph/file3de0f47369daf5/test2.csv
  2 PFW files successfully imported.
  Reading: /tmp/RtmpdtNhph/file3de0f45f8f70cc/invalid.csv
  Skipping file (incorrect data structure): /tmp/RtmpdtNhph/file3de0f45f8f70cc/invalid.csv
  Reading: /tmp/RtmpdtNhph/file3de0f45f8f70cc/valid.csv
  1 PFW files successfully imported.
  Reading: /tmp/RtmpdtNhph/file3de0f440603527/pfw_test.csv
  1 PFW files successfully imported.
  1 regions successfully filtered.
  Date filtering complete.
  1 species successfully filtered.
  Filtering complete. 1 records remaining.
  1 regions successfully filtered.
  2 regions successfully filtered.
  3 regions successfully filtered.
  2 regions successfully filtered.
  2 regions successfully filtered.
  Taxonomic rollup complete. 0 ambiguous records removed.
  Taxonomic rollup complete. 1 ambiguous records removed.
  Taxonomic rollup complete. 2 ambiguous records removed.
  Taxonomic rollup complete. 0 ambiguous records removed.
  Site metadata successfully merged.
  Species selected in filter but absent from input data: American Robin (nigrideus), American Robin (migratorius Group)
  1 species successfully filtered.
  Species selected in filter but absent from input data: American Robin (nigrideus), American Robin (migratorius Group)
  1 species successfully filtered.
  Species selected in filter but absent from input data: American Robin (nigrideus), American Robin (migratorius Group)
  2 species successfully filtered.
  Species selected in filter but absent from input data: Northern Cardinal (Common)
  1 species successfully filtered.
  Species selected in filter but absent from input data: Northern Cardinal (Common)
  1 species successfully filtered.
  Species selected in filter but absent from input data: American Robin (nigrideus), American Robin (migratorius Group)
  2 species successfully filtered.
  Data filtered to standard PFW season window.
  Zerofilling complete.
  Zerofilling complete.
  [ FAIL 2 | WARN 0 | SKIP 8 | PASS 108 ]
  
  ══ Skipped tests (8) ═══════════════════════════════════════════════════════════
  • On CRAN (8): 'test-pfw_download.R:18:3', 'test-pfw_download.R:29:3',
    'test-pfw_download.R:40:3', 'test-pfw_download.R:55:3',
    'test-pfw_download.R:71:3', 'test-pfw_example.R:2:3',
    'test-update_taxonomy.R:2:3', 'test-update_taxonomy.R:16:3'
  
  ══ Failed tests ════════════════════════════════════════════════════════════════
  ── Error ('test-pfw_download.R:13:3'): pfw_download creates folder if it doesn't exist ──
  <httr2_http_524/httr2_http/httr2_error/rlang_error/rlang_error/error/condition>
  Error in `httr2::req_perform(httr2::req_user_agent(httr2::request("https://feederwatch.org/explore/raw-dataset-requests/"), 
      "PFW R package"))`: HTTP 524.
  Backtrace:
       ▆
    1. ├─base::suppressMessages(pfw_download(2021, folder = temp_folder)) at test-pfw_download.R:13:3
    2. │ └─base::withCallingHandlers(...)
    3. └─PFW::pfw_download(2021, folder = temp_folder)
    4.   ├─httr2::resp_body_html(...)
    5.   │ └─httr2:::check_response(resp)
    6.   │   └─httr2:::is_response(resp)
    7.   └─httr2::req_perform(...)
    8.     └─httr2:::handle_resp(req, resp, error_call = error_call)
    9.       └─httr2:::resp_failure_cnd(req, resp, error_call = error_call)
   10.         ├─rlang::catch_cnd(...)
   11.         │ ├─rlang::eval_bare(...)
   12.         │ ├─base::tryCatch(...)
   13.         │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
   14.         │ │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
   15.         │ │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
   16.         │ └─base::force(expr)
   17.         └─rlang::abort(...)
  ── Error ('test-pfw_sitedata.R:34:3'): pfw_sitedata throws error for valid path but bad data ──
  <httr2_http_524/httr2_http/httr2_error/rlang_error/rlang_error/error/condition>
  Error in `httr2::req_perform(httr2::req_user_agent(httr2::request("https://feederwatch.org/explore/raw-dataset-requests/"), 
      "PFW R package"))`: HTTP 524.
  Backtrace:
       ▆
    1. ├─testthat::expect_error(...) at test-pfw_sitedata.R:34:3
    2. │ └─testthat:::expect_condition_matching(...)
    3. │   └─testthat:::quasi_capture(...)
    4. │     ├─testthat (local) .capture(...)
    5. │     │ └─base::withCallingHandlers(...)
    6. │     └─rlang::eval_bare(quo_get_expr(.quo), quo_get_env(.quo))
    7. └─PFW::pfw_sitedata(data.frame(), path = path)
    8.   ├─httr2::resp_body_html(...)
    9.   │ └─httr2:::check_response(resp)
   10.   │   └─httr2:::is_response(resp)
   11.   └─httr2::req_perform(...)
   12.     └─httr2:::handle_resp(req, resp, error_call = error_call)
   13.       └─httr2:::resp_failure_cnd(req, resp, error_call = error_call)
   14.         ├─rlang::catch_cnd(...)
   15.         │ ├─rlang::eval_bare(...)
   16.         │ ├─base::tryCatch(...)
   17.         │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
   18.         │ │   └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
   19.         │ │     └─base (local) doTryCatch(return(expr), name, parentenv, handler)
   20.         │ └─base::force(expr)
   21.         └─rlang::abort(...)
  
  [ FAIL 2 | WARN 0 | SKIP 8 | PASS 108 ]
  Error: Test failures
  Execution halted