soil2netcdf() no longer drops depth information for soils with only one layer. (#3785)
soil_params() where bulk density is not specified by the user now look up soil_bulk_density from the soil type (as always intended) instead of always reporting 1350 kg/m3 because of a flow control typo. (#3776)
bism_kc_by_crop dataset containing BISm crop coefficient schedules and stage timing references for use in ET estimation, including columns that map to LandIQ class and subclass.
Changed
Package traits, used by match_pft() and match_species_id() only when no database connection is provided, is now suggested rather than required.
New function look_up_fertilizer_component() contains typical carbon and nitrogen composition of common fertilizer types (#3559).
New PEcAn standard for events.json files. These contain information about management events (planting, harvest, irrigation, etc). The standard is defined in inst/events_schema_v0.1.0.json and event files can be validated against the schema with new function validate_events() (#3623, #3521).
Changed
Read.IC.info.BADM now processes both single-site and multi-site settings, and uses more carbon pools (ROOT_BIOMASS, AG_BIOMASS, SOIL_STOCK, LIT_BIOMASS) if they are present (#3536).
Package swfscMisc is no longer imported; it was formerly used in extract_NEON_veg() to compute distances and has been replaced by use of terra::distance() (#3552).
extract_soil_gssurgo() now supports spatial grid sampling using new arguments grid_size and grid_spacing. Previously available argument radius has been removed (#3534).
find.land() has been removed. It is not used anywhere we know if, has apparently not been working for some time, and relied on the maptools package which is scheduled for retirement.
Removed dependency on PEcAn.data.atmosphere, notably by retrieving site latitude and longitude directly from PEcAn.DB::query.site instead of custom lookups (#3300, Abhinav Pandey).