- Added dependency to
cli
package forDONE()
,NOTE()
, andRULE()
(see below). digitizeRadii()
: Modified. Change console output directions to useRULE()
instead ofNOTE()
.DONE()
: Modified. Changed to usecat_line()
fromcli
package (removed my hack).findScalingFactor()
: Modified. Change console output directions to useRULE()
instead ofNOTE()
.NOTE()
: Modified. Changed to usecat_line()
fromcli
package (removed my hack).RULE()
: Added.
- Released to CRAN.
- Removed automatic webpage construction from Travis-CI. Did not work with some of the update vignettes.
- Put fishBC in the Description field into single quotes as directed by CRAN.
digitizeRadii()
. Modified. Added a note that draws attention whensnap2Transect=TRUE
andshowTransect=FALSE
(i.e., "snapping" to a transect that is not shown). At least partially addresses #30.
iSnap2Transect()
: Modified. Changed to handle bugs related to perfectly vertical or perfectly horizontal transects. Addresses #27 (Thanks to Ben Neely).digitizeRadii()
: Modified. RemovedsepWindow()
. AddeddeviceType=
.findScalingFactor()
: Modified. RemovedsepWindow()
. AddeddeviceType=
.getID()
: Modified. AddedIDreplace=
. Added more examples of use ofIDpattern=
andIDreplace=
and more tests.iGetimage()
: Modified. RemovedsepWindow=
. AddeddeviceType=
.RFBCoptions()
: Modified. RemovedsepWindow()
. AddeddeviceType=
andIDreplace=
.showDigitizedImage()
: Modified. RemovedcloseWindow=
andsepWindow()
.
combineData()
: Modified. Changed so that an age-0 fish with all plus-growth is still included in the returned data.frame whendeletePlusGrowth=TRUE
(theann
andrad
variables will both beNA
). Thanks to Ben Neely.digitizeRadii()
: Modified. Removed restriction that one point be selected as an annulus, which allows for handling age-0 fish (addresses #25; thanks to Ben Neely for the suggestion). Removed theq
andr
button equivalencies forf
andd
. Added the ability for the user to start over (resulting in no file to be written, but the current image stays live; uses thez
key) (addresses #22; thanks to Ben Neely for the suggestion). Added the ability for the user to abort a processing (resulting in no file to be written and moving to the next image if using multiple images; uses theq
key) (addresses #24; thanks to Ben Neely for the suggestion).findScalingFactor()
: Modified. Changed to allow the user to abort or restart the process, similar to fordigitizeRadii()
.
- Excluded many of the interactive lines from the coverage statistics. Updated other tests (aiming for comprehensiveness).
- Started a cran-comments document to begin preparations for a CRAN release.
- Added
Encoding: UTF-8
to DESCRIPTION. bcFuns()
: Modified. Fixed bug inverbose=
result whenBCM=18
.listFiles()
: Modified. Fixed bug related toignore.case=
.getID()
: Modified. Slightly simplified code. Added tests.
- Set TravisCI to auto-update the webpage documentation (See this).
- Updated "Collect Radii Data" and the "Workflow" vignettes for changes below.
- Updated the webpage for changes below.
digitizeRadii()
: Modified. Moved the main code toiDigitizeRadii1()
, which is basically the oldedigitizeRadii()
for working with only one image. The newdigitizeRadii()
allowsnm=
andid=
to be vectors with length greater than 1 so that multiple images (and corresponding IDs) can be given to the function at once (or selected via a dialog box). Thus, this function now handles single or multiple images. This addresses #20 (thanks to B. Utrup and J-M. Hessenauer). Also changed so that the dialog box for entering fish IDs is populated with a better guess at the fish's ID by usinggetID()
with the newIDpattern=
.getID()
: Added. Part of addressing #20.RFBCoptions()
: Modified. AddedIDpattern=
(Part of addressing #20).
- Added CITATION file.
- Added hex sticker.
- Added workflow vignette.
combineData()
: Modified. Allowed first argument to be anRFishBC
object saved fromdigitizeRadii()
(partially addresses #16; thanks to Jason Doll).digitizeRadii()
: Modified. AddedcloseWindow=
(addresses #14). Changed so that the rownames of thepts
data.frame in the returned object includes "center" and "edge." See changes toiSelectPt()
.findScalingFactor()
: Modified. AddedcloseWindow=
(addresses #14). See changes toiSelectPt()
.iSelectPt()
: Modified. AddednumPts=
with several "catches" for whether this target number of points is met when the "f" key (for "finished") was pressed. Alters behavior indigitizeRadii()
andfindScalingFactor()
(addresses #17; thanks to Jason Doll).RFBCoptions()
: Modified. AddedcloseWindow=
(addresses #14).showDigitizedImage()
: Modified. Fixed bug iniShowAnnuliLabels()
(addressed #12; thanks to Liuyong Ding). Allowed first argument to be anRFishBC
object saved fromdigitizeRadii()
(partially addresses #16; thanks to Jason Doll). Changednm=
tonms=
to be consistent withcombineData()
.
- Added
rlang
,stringr
, andtidyr
to Imports. - Added tests.
- Updated "Collect Data" vignette for changes to
combineData()
. - Changed "Back-calculating Lengths" vignette for new
backCalc()
. aStandard()
: Added. Addresses #10.backCalc()
: Added.bcFuns()
: Modified. Changed to usingSTOP()
. Changed allLc
toLcap
,Rc
toRcap
,agec
toAcap
, andagei
toAi
. Changed all BPH-related models to usea
,b
, andc
and all SPH-related models to useA
,B
, andC
. Started usingiGetBCMethod()
. Removedverbose=
(moved to within the returned function).bcUtilChecker()
: Modified. Changed to usingSTOP()
andWARN()
.combineData()
: Modified. AddedoutFormat=
anddeletePlusGrowth=
arguments (and corresponding tests).findScalingFactor()
: Modified. Added a catch for non-positiveknownLength=
.iGetBCMethod()
: Added. Used inbackCalc()
andbcFuns()
.SMBassWB1
: Added.SMBassWB2
: Added.StdIntLit
: Added.
- Added tests.
- Changed to using
.rds
files rather than.RData
files to save the data. This required usingsaveRDS()
indigitizeRadii()
andreadRDS()
inshowDigitizedImage()
andcombineData()
. combineData()
: Modified. See note above. Added a check that the file is an "R Data" file (usingisRData()
) and of theRFishBC
class.digitizeRadii()
: Modified. See note above. Added theRFishBC
class to the saved and returned object.showDigitizedImage()
: Modified. See note above. Added a check that the file is an "R Data" file (usingisRData()
) and of theRFishBC
class.isRdata()
: Added.
- Updated tests.
digitizeRadii()
: Modified. Added ability (usingiSelectPt()
) to delete points after selection for scale-bar, transect, and annuli selection. This removed the use oflocator()
and thus key-presses are used to terminate the selection of points. Added thepch.del=
andcol.del=
arguments. Removed theorig.pts
data.frame from the returned object.findScalingFactor()
: Modified. Added ability (usingiSelectPt()
) to delete points after selection for scale-bar. Addedpch.sel=
,col.sel=
,cex.sel=
,pch.del=
, andcol.del=
arguments.RFBCoptions()
: Modified. Added thepch.del=
andcol.del=
arguments. Removedpch.show2=
,col.show2=
, andcex.show2=
showDigitizedImage()
: Modified. Removed the ability to show the original (before snapping to the transect) points. Thus, removedshowOrigPts=
,pch.show2=
,col.show2=
, andcex.show2=
.iSelectPt()
: Added.
- Added some tests.
- Added importFrom for
clisymbols
andcrayon
packages. combineData()
: Modified. Added a check that the RData file has aradii
object.digitizeRadii()
: Modified. Fixed bug related toshowTransect=
. Addedclisymbols
to messages (and had to changemessage()
s tocat()
s). Added tests for the messages related to arguments (found early in the function).iHndlFilenames()
: Modified. Slight modification of the error messages.
- Changed license from MIT to GPL-3.
combineData()
: Modified. Better handles filenames (seeiHndlFilenames()
).digitizeRadii()
: Modified. Better handles filenames (seeiHndlFilenames()
).findScalingFactor()
: Modified. Better handles filenames (seeiHndlFilenames()
).showDigitizedImage()
: Modified. Better handles filenames (seeiHndlFilenames()
). Streamlined the looping code. Made a catch for the situation where one of the multiple files selected does not appear to be derived from the same structure image as the first file.iHndlFilenames()
: Modified. Streamlined and changed to usingchoose.files()
to allow for more efficient selection of multiple files. Filtered the choices to image files or RData files. Now checks to see if the user is using Windows and if the selected files are in the current working directory.
- Complete reworking of the code. The big difference is a requirement that the data files be in the current working directory.
digitizeRadii()
: Modified. Incorporated some of the internal files, completely rewored the list that is returned, dealt with working directory change.findScalingFactor()
: Modified. Dealth with working directory chagne.showDigitizedImages()
: Modified. Incorporated some of the internal files and dealt with working directory change.iFindTransect()
: Deleted. Moved intodigitizeRadii()
.iHndlID()
: Deleted. Moved intodigitizeRadii()
.iHndlScalingFactor()
: Deleted.iHndlScalingFactorFromScaleBar()
: Added.iProcessAnnuli()
: Deleted. Moved intodigitizeRadii()
.iPts2Rad()
: Added.iSelectAnnuli()
: Deleted. Moved intodigitizeRadii()
.iShowTransect()
: Deleted. Deleted. Moved intodigitizeRadii()
andshowDigitizedImage()
.
digitizeRadii()
: Modified. Slight modification to the messages in the console. Re worked the code withlocator()
so that the points will be shown "snapped to the transect" ifsnap2Transect=TRUE
(this addresses #7). Added anorig.pts
data.frame to the RData object which contains the original (non-snapped to transect) points (which can be plotted withshowDigitizedImage()
). ChangedaddTransect=
toshowTransect=
to make more similar toshowDigitezedImages()
.RFBCoptions()
: Modified. AddedshowAnnuliLabels=
,col.ann=
, andcex.ann=
for use inshowDigitizedImage()
. Changed defaults of mostly colors, pchs, and cexs.showDigitizedImage()
: Modified. AddedshowAnnuliLabels=
,col.ann=
, andcex.ann=
to shown annuli numbers when just one transect is shown. AddedshowOrigPts=
,pch.show2=
,col.show2=
, andcex.show2=
to handle including original points on the image.iFindTransect()
: Added. Moved this code out ofiSelectAnnuli()
.iGetImage()
: Modified. Streamlined code. Addednative=TRUE
toread.bitmap()
call to send to the underlying functions as this is apparently more efficient when usingrasterImage()
(which this uses).iOrderPts()
: Added. Made it easier to add annuli labels inshowDigitizedImage()
.iSelectAnnuli()
: Modified. Now callsiSelectTransect()
.iShowAnnuliLabels()
: Added. Made it easier to add annuli labels inshowDigitizedImage()
.ishowTransect()
: Added. Moved this code out ofiSelectAnnuli()
. Also called fromshowDigitizedImage()
.
digitizeRadii()
: Modified. Addedsnap2Transect=
to address #1. Modified howfname=
was handled if missing (seeiHndlfname()
) and if selecting an image from outside of the current working directory. Allowed user to chooseid=
through a dialog box or a console prompt (seeiHndlID()
), which addresses #2. AddedpopID=
(again seeiHndlID()
). Fixed poor directions about the use of the escape key to terminatelocator()
. AddedshowInfo=
,pos.info=
,cex.info=
, andcol.info=
to address #6.iGetImage()
: Added. WasiReadImage()
. Calculated the pixel width-to-height ratio (from image dimensions) and returned in list.iHndlfname()
: Added. Used indigitizeRadii()
,showDigitizedImage()
, andfindScalingFactor()
.iHndlID()
: Added. Used indigitizeRadii()
. Was modified from initial to include the image filename sans extension as the default ID in the Windows dialog box (when used withdigitizeRadii()
), which partially addresses #5.iHndlScalingFactor()
: Modified. AddedpixW2H=
argument to receive the pixel width-to-height ratio to adjust distance calculations for non-square images.iPlaceText()
: Added. Used to address #6.iReadImage()
: Removed. Changed toiGetImage()
.iSnap2Transect()
: Added. Used indigitizeRadii()
.iProcessAnnuli()
: Modified. AddedpixW2H=
argument to receive the pixel width-to-height ratio to adjust distance calculations for non-square images.RFBCoptions()
: Modified. AddedpopID=
(seeiHndlID()
). AddedshowInfo=
,pos.info=
,cex.inf=
, andcol.info=
(seedigitizeRadii()
).showDigitizedData()
: Modified. Movedfile.choose()
forfname=
out of argument list and into the main function code. Also modified to allow the user to select an object out of the current working directory (only works with a single file).
- First version. Everything is new.