uas_info(): added pattern argument to provide more options for specifying images to read in directories with data from mixed sensors; fixed a bug with the error trapping; updated help page.Note: there's a slight chance this update could break existing code, because the ext argument in uas_info() now has a non-NULL default value. Moving forward, it is recommended to always specify the image file name extensions using ext.
uas_toc(): fixed an error that occurred if flight summaries were in different UTM zones (#13)uas_report(): fixed a dependency bug in when tbm_use = TRUEuas_info(): make the ext argument a vector, changed the default value to common image extensions, updated checks for files with missing EXIF data (#12), added a check for multiple sensor types in one directoryggplot2 added to Suggests (used when creating whole flight thumbnails)uas_report(): fixed a buguas_info(): trapped errors when Make and Model tags are blank, or if there not enough images to compute a MCPThis is a fairly significant update. Key changes include:
uas_report() that control this.To use rotated thumbnail images for the flight summary reports, you must create the thumbnail images using uas_thumbnails_make() (and set the rotate argument to TRUE). If you don't do this but ask for thumbnail images to be included in a flight summary report, uas_report() will still create thumbnail images on-the-fly, but there isn't a rotation option (and in a future update uas_report() will no longer generate thumbnails on-the-fly).
Changes were also made to several arguments in uas_report() that control downloading a thumbnail image for the entire flight (aka thumbnail map). See the help page for the new arguments (pts_col, tbm_use, tbm_overwrite, tbm_size, tbm_src, tbm_api_key, and tbm_exp) and deprecated arguments (png_map, overwrite_png, png_exp, google_api, and col). Some of these are simply name changes, while others are new or have different behavior. In a future update, downloading thumbnail images of the flight area will be moved to a separate function.
Along the same lines, both Google Maps and Stadia Maps (which replaced the defunct Stamen Maps API) require passing an API key (see the uas_report() help page for info about how to get an API key) . Your preferred service should be passed as tbm_src, and your API key must be passed as tbm_api_key. If you use Google Maps, you'll get a satellite image, while Stadia Maps will download a terrain image (similar to Stamen). Thumbnail maps are still downloaded using ggmap, however you can no longer 'preload' your API key in .Renviron; you must pass it in explicitly with tbm_api_key. If this present problems contact the package author.
Other changes include:
uas_exp_geotiff(): new function to create a pseudo-georectified image (using the modeled footprint) as a GeoTIFF (#7)uas_thumbnails_make(): new argument rotated will create rotated thumbnails (FALSE by default for backward compatibility)uas_worldfile(): added new argument flt for the flight index (because a uas_info object can contain metadata for multiple flights / image collections). Improved error messages.terra added as a suggested dependency (to support the new uas_exp_geotiff() function)magick moved from imports to suggestsuas_convert(): checks added to see if magick is installedleaflet.extras added to imports (to add a full screen control to the leaflet map on flight summary reports)lifecycle package added to imports (to communicate renamed arguments)uas_exp_kml(), uas_exp_shp(), uas_thumbnails_make(), uas_move(), uas_rename(), uas_report(): argument flt added for consistency across functions; flt_idx deprecated. Improved error messages (#6)uas_report(): units argument added to set whether to use imperial or metrics units for the flight area, altitude AGL, and GSD (#11). Several arguments related to downloading thumbnail images of flight areas have been deprecated, renamed, or added, for consistency and to deal with changes in ggmap.uas_report.Rmd: modified so the thumbnail image height is automatically set by the browser (to accommodate thumbnail images with different aspect ratios, including rotated images); added a button to display the map full screen; added code to support units argumentuas_info(): the cache is auto-refreshed if fp=TRUE and cache=TRUE but the cache doesn't contain footprints (#6); added an extra sort by datetimeoriginal to deal with the odd case where sorting images by their filenames doesn't result in a sequential order (#9).cameras.csv: added DJI Zenmuse P1 (#8), Autel Evo2 RGBuas_cameras(): updated to import and view the flight-yaw tag columnuas_worldfile(): updated function documentation (#6)uas_info(): updated status message (to include the optional ext argument)uas_rename(): new function to rename images based on a name template with placeholders for image and flight metadatauas_info(): updated documentationuas_metadata_make(): updated default flight metadata templateuas_report.Rmd: changed the default Window title to the short version of the flight nameuas_info(): argument ext added (filter by file type); minor code cleaning,uas_info(): added argument path2name_fun; modified to support new date_time column in cameras.csvuas_path2name_fun(): new function that returns a function to parse a directory path and concatenate user-specified elements to form a flight name; designed to be passed as the value of the path2name_fun argument in
uas_info() to construct default flight namesuas_report() and uas_toc(): arguments header_html and footer_html can now accept URLsmagrittr package added to imports (needed to use the results of uas_path2name_fun())cameras.csv added date_time column (to accommodate the cameras like the Airphen that don't have a DateTimeOrginal EXIF tag)uas_readcameras() added date_time column to importuas_info(): fix a bug that occurred when gpslatitude and gpslongitude were not found in EXIF datauas_info(): modified such that a generic camera is used if the camera is not detecteduas_toc(): fixed a bug when output_dir = ".", gather_dir = NULL, and input reports are on a different volumeuas_report.Rmd: fixed a bug when group_img = FALSEuas_move(): renamed outdir_root to outdir_base.uas_report(): fixed a bug parsing the results of uas_thumbnails_make()uas_report.Rmd: added default value for parameter nomapNOTE: AFTER INSTALLING THIS UPDATE YOU SHOULD RUN uas_clearcache()
uas_toc(): added uas_report.css to the files that get gatheredstringr added to imports (i.e. required)uas_cameras(): added camera_abbrev columnsuas_readcameras: added camera_abbrevuas_info(): updated to find exiftool executable installed by exiftoolr; camera_name and camera_abbrev added as an attribute fields to accommodate multi-sensor flightsprint.uas_info() and report.Rmd: updated to report the number of images per camera for multi-sensor flightsuas_report(): changed default filename suffix to _rpt; updated for multi-folder flightsuas_move(): overhauleduas_worldfile(), uas_cropctr(): updated for multi-folder flightsuas_exp_shp(), uas_exp_kml(): updated for multi-folder flights; argument img_dir replaced with flt_idxuas_thumbnails_make(): argument img_dir replaced with flt_idxuas_dirs_find(): fixed a case where images in tb folders were not excludeduas_dirs_find(): path column in the tibble is now wrapped in normalizePath() (primarily for readability with network paths)uas_report(): returned HTML file names are now wrapped in normalizePath(); show_gps_coord deprecateduas_toc(): fixed an error where the libs subfolder was not being gathereduas_toc.Rmd: added error trapping code if metadata fields are missinguas_report.Rmd: modified the balloon text to show GPS coordsuas_thumbnails_make(): modified to automatically switch to the magick package functions (with a message) if thumbnails from TIFs are being created and imager:::has.magick() is FALSE.uas_thumbnails_make(): enabled use_magick argumentuas_report(): added checks for directory existence and accessuas_metadata_make(): argument md_template can now be a URLuas_dirs_find(): new function to find all sub-directories with imagesuas_thumbnails_make(): added stats argument to display the amount of time taken per thumbnailuas_report(): added use_tmpdir argument to render the flight summary report in temp folder (can prevent Pandoc errors when images are on a network drive)uas_cropctr(): removed a leftover debugging statementuas_metadata_make(): added use_system_editor argumentuas_report(): added header_html and footer_html argumentsuas_metadata_make(): appended file: to metadata files on network paths to get it to open in notepad; added more comments in templateuas_convert(): this new function converts images between file formats (e.g., DNG to JPG), while preserving EXIF datamagick and exiftoolr added as dependent packages (as imports)uas_info(): added argument for exiftoolr_useuas_getoemflds(): added 'uav' to the list of default flight metadata fieldsuas_report(), uas_exp_kml(), and uas_exp_shp(): added checks after dir.create()uas_metadata_make(): additional comments inserted when creating a brand new new metadata fileuas_getflds(): exporteduas_thumbnails_make(): increased the number of bytes read to create a unique filename from 500 to 2000uas_info(): updated to always rename yaw field even when fp = FALSEuas_clearcache(): createduas_report() and uas_report.Rmd: arguments report_title and kml_ctr added; trapped an error if metadata exists but without an image collection name; thumbnails disabled for grouped images (until a better visualization is implemented); additional tags added to facilitate web scrapinguas_info(): deafult value of fp changed to FALSE; default value of cache changed to TRUE; a flight id value saved in return value (used primarily to name files if metadata$name_short is missing)uas_flds_oem(): name_short and notes added to default fields; collection_name removeduas_toc() and uas_toc.Rmd: check that html files exist added; all code migrated from XML to xml2uas_exp() renamed (back to) uas_exp_shp();uas_exp_kml() createduas_thumbnails_make() createduas_toc() and uas_toc.Rmd updated - new summary_map argument displays an interactive mission footprint mapuas_report.Rmd updated - flight MCP converted to base64 and encoded in a meta taguas_report.R updated - argument local_dir renamed show_local_dir; gps_coord renamed show_gps_coorduas_exp() renamed uas_exp_shp()kml_mcp to uas_report()uas_info() and uas_cameras()name_only argument to uas_cameras()csv to exif_csv in uas_info()gps_coord to uas_report() & modified uas_report.Rmd to show the GPS coordinates in the pop-up windowsuas_info() edited to i) check the number of images in the directory before computing forward overlap, ii) add bullet characters to feedback messagesNEWS.md file to track changes to the package.geo2utm() modified to return a EPSG number (to comply with recent changes to rgdal and proj4). After installing this update, users are advised to delete their old cache (see uas_getcache()) to prevent warning messages about unknown datums in a proj4string.uas_cropctr() added - crops around the center of each image for a better photo mosaicuas_report() modified to return the file name of HTML files that already exist and overwrite = FALSE; corrected the extension for tif thumbnail files.uas_metadata_make().uas_toc() and uas_toc.Rmd to support gather = '.', handle duplicate HTML names, a description, and default footer.uas_info() when no external metadata was found or passed as an argument.uas_report() to create thumbnails previews that appear in the popup windows of the image collection catalog.combine_dirs argument to uas_grp_flt() to support multi-directory flight parsing.uas_info(() modified to support file names metadata.txt expanded to metadata*.txt.uas_getcache() and uas_setcache().uas_grp_flt() and uas_grps2col().uas_getflds() and uas_setflds().meta_extra argument to metadata in uas_info().uas_getcachedir() and uas_setcachedir() to manage cache directory for EXIF data.uas_info() to cache and update_cache.uas_toc().uas_report() and uas_report.Rmd, metadata now encoded in HTML.toc_csv deprecated.summary.uas_info() replaced with print.uas_info() (generic print method).meta_extra argument to uas_info().cache_dir and cache_update to uas_info().overwrite argument in uas_report() into overwrite_html and overwrite_png.meta_extra argument to uas_info().toc_csv argument to uas_report().uasimguavimg:
uavimg_ to uas_sf packageoverwrite argument to uas_exp() and uas_report()uas_info()sf, tidyr and crayon packages as dependenciesfindonpath() when path values had trailing slashes