Nothing
## ----echo = FALSE-------------------------------------------------------------
knitr::opts_chunk$set(collapse = TRUE, comment = "#>")
## -----------------------------------------------------------------------------
library(birdscanR)
## ----eval=FALSE---------------------------------------------------------------
# # Set main output directory
# # =============================================================================
# mainOutputDir = file.path(".", "results")
#
# # Set server and database settings
# # =============================================================================
# dbServer = "MACHINE\\SERVERNAME" # Set the name of your SQL server
# dbName = "db_Name" # Set the name of your database
# dbDriverChar = "SQL Server" # Set either "SQL Server" or "PostgreSQL"
#
# # Set timezone used by the radar/database
# # Use "Etc/GMT0" (UTC) as radarTimeZone for birdscan v1.6
# # and greater as all times are in UTC as of this software version.
# # =============================================================================
# radarTimeZone = "Etc/GMT0"
#
# # Set target timezone for the radar/dataset
# # Example: targetTimeZone = "Etc/GMT-1" (Etc/GMT-1 equals UTC+1)
# # =============================================================================
# targetTimeZone = "Etc/GMT0"
#
# # Set list of Rf features you also want to extract
# # Vector with RF features to extract. Feature IDs can be found in the
# # rffeatures table in the sql database.
# # Example: Get wing beat frequency and credibility: c(167, 168)
# # Set to NULL to not extract any.
# # =============================================================================
# listOfRfFeaturesToExtract = NULL
#
# # Geographic location of the radar measurements - c(Latitude, Longitude)
# # =============================================================================
# siteLocation = c(47.494427, 8.716432)
#
# # Set type of twilight to use for day/night decision, i.e., "sun" or "civil"
# # =============================================================================
# sunOrCivil = "civil"
#
# # Filter settings
# # =============================================================================
# # Set desired pulseLength modes
# pulseLengthSelection = c("S")
#
# # Set desired rotation modes (multiple simultaneous selections possible)
# # options: 1 (rotation), 0 (nonrotation)
# rotationSelection = c(1)
#
# # Set classes to use in the analysis
# # Example: classSelection = c("passerine_type", "wader_type", "swift_type",
# # "large_bird", "unid_bird", "bird_flock",
# # "insect", "nonbio", "precipitation")
# classSelection = c("insect")
#
# # Set the classification propability cutoff (between 0 and 1) - only objects
# # for which the chosen label also has a classification probability > than the
# # cutoff are retained; Set to NULL to not subset according to probability.
# classProbCutoff = NULL
#
# # Set the altitude range (in meters agl)
# altitudeRange = c(50, 1000)
#
# # Set the time range for echodata (in the targetTimeZone)
# # use format "yyyy-MM-dd hh:mm"
# timeRangeData = c("2021-01-15 00:00", "2021-01-31 00:00")
#
# # Set whether to get the manual blind time from:
# # "mandb": the db file;
# # "csv" : a separate csv file
# manBlindSource = "csv"
#
# # Set paths to manual blind times file, if manBlindSource == "csv"
# if (manBlindSource %in% "csv"){
# manblindFile = file.path("data", "manualBlindTimes.csv")
# }
#
# # Set whether to use the echoValidator - If set to TRUE, echoes labelled
# # by the echo validator as “non-bio scatterer” will be excluded.
# useEchoValidator = FALSE
#
# # MTR calculation settings
# # =============================================================================
# # Set whether to save the blind times to file
# saveBlindTimes = TRUE
#
# # Set altitude Range and Bin Size for the MTR calculations
# altitudeRange.mtr = c(25, 1025)
# altitudeBinSize = 50
#
# # time range for timeBins (targetTimeZone) - format: "yyyy-MM-dd hh:mm"
# timeRangesTimeBins = c("2021-01-15 00:00", "2021-01-31 00:00")
#
# # timeBin size in seconds
# timeBinduration_sec = 3600
#
# # set blindtime types which should not be treated as blindtime but MTR = 0
# blindTimeAsMtrZero = c("rain")
#
# # cutoff for proportional observation times: Ignore TimeBins where
# # "observationTime/timeBinDuration < propObsTimeCutoff"
# # in 'computeMTR' only used if parameter 'computePerDayNight' is set to
# # 'TRUE' and timeBins are shorter than day/night. In this case timeBins
# # are combined by day/night and only time bins with a proportional
# # observation time greater than the cutoff will be used to compute the
# # day/night MTR and spread.
# # set value from 0-1
# propObsTimeCutoff = 0.2
#
# # Set classes for which you want the MTR
# # Example: classSelection = c("passerine_type", "wader_type", "large_bird")
# # classSelection = c("passerine_type", "wader_type", "swift_type",
# # "large_bird", "unid_bird", "bird_flock",
# # "insect", "nonbio", "precipitation")
# classSelection.mtr = c("insect")
#
# # Set whether to compute MTR per timebin or per day/night
# # TRUE: MTR is computed per day and night;
# # FALSE: MTR is computed for each time bin
# computePerDayNight = FALSE
#
# # Set whether to save the MTR to file
# saveMTR2File = TRUE
## ----eval=FALSE---------------------------------------------------------------
# # Print progress message
# # =============================================================================
# message(paste0("Extracting data from ", dbName))
#
# # Get data
# # =============================================================================
# dbData = extractDbData(dbDriverChar = dbDriverChar,
# dbServer = dbServer,
# dbName = dbName,
# saveDbToFile = TRUE,
# dbDataDir = mainOutputDir,
# radarTimeZone = radarTimeZone,
# targetTimeZone = targetTimeZone,
# listOfRfFeaturesToExtract = listOfRfFeaturesToExtract,
# siteLocation = siteLocation,
# sunOrCivil = sunOrCivil)
#
# # Print progress message
# # =============================================================================
# message(paste0("Finished extracting data from ", dbName))
## ----eval=FALSE---------------------------------------------------------------
# # Print progress message
# # =============================================================================
# message(paste0("Filtering data from ", dbName))
#
# # Get current manual blind times
# # =============================================================================
# # CASE: manBlindSource == "csv"
# # ===========================================================================
# if (manBlindSource %in% "csv"){
# # Read manual blindtimes from csv File
# # csv contains one row per blindtime and 3 columns
# # (start of blindtime, stop of blindtime, type of blindtime)
# # times have to be of format 'yyyy-MM-dd hh:mm:ss'
# # =======================================================================
# cManualBlindTimes = loadManualBlindTimes(filePath = manblindFile,
# blindTimesTZ = radarTimeZone,
# targetTZ = targetTimeZone)
# # CASE: manBlindSource == "mandb"
# # ===========================================================================
# } else if (manBlindSource %in% "mandb"){
# cManualBlindTimes = dbData$manualVisibilityTable
# }
#
# # Filter the data
# # =============================================================================
# filteredEchoProtocol = filterData(echoData = dbData$echoData,
# protocolData = dbData$protocolData,
# pulseTypeSelection = pulseLengthSelection,
# rotationSelection = rotationSelection,
# timeRangeTargetTZ = timeRangeData,
# targetTimeZone = targetTimeZone,
# classSelection = classSelection,
# classProbCutOff = classProbCutoff,
# altitudeRange_AGL = altitudeRange,
# manualBlindTimes = cManualBlindTimes,
# echoValidator = useEchoValidator)
#
# # Save the filtered echo and protocol data to the database data list
# # =============================================================================
# dbData$echoData = filteredEchoProtocol$echoData
# dbData$protocolData = filteredEchoProtocol$protocolData
#
# # Save the filtered dataset to a file, including also all filter settings,
# # and the other tables in the original dataset
# # =============================================================================
# dbData$echoFiltersApplied = list(classProbCutoff = classProbCutoff,
# altitudeRange_AGL = altitudeRange,
# targetTimeZone = targetTimeZone,
# timeRangeEchoData = timeRangeData,
# useEchoValidator = useEchoValidator)
# if (is.null(classProbCutoff)){classProbCutoff.char = 0} else {classProbCutoff.char = classProbCutoff}
# outputFile = file.path(mainOutputDir,
# paste0(dbName, "_filtered_",
# "cut", classProbCutoff.char, "_",
# "altRange", paste(altitudeRange, collapse = "to"), "_",
# "timeRange", paste(format(as.Date(timeRangeData), "%Y%m%d"),
# collapse = "to"),
# "_",
# "echoVal", as.character(useEchoValidator),
# ".rds"))
# saveRDS(dbData, outputFile)
#
# # Print progress message
# # =============================================================================
# message(paste0("Finished filtering data from ", dbName))
#
## ----eval=FALSE---------------------------------------------------------------
# # Print information message
# # =====================================================================
# if (computePerDayNight){
# message(paste0("Computing MTR for ", dbName, ", using:\n",
# "Classes: ", paste(classSelection.mtr, collapse = ", "), "\n",
# "For altitudes: ", paste(altitudeRange.mtr, collapse = " to "),
# " in bins of ", altitudeBinSize, "m\n",
# "on a nightly/daily basis"))
# } else {
# message(paste0("Computing MTR for ", dbName, ", using:\n",
# "Classes: ", paste(classSelection.mtr, collapse = ", "), "\n",
# "For altitudes: ", paste(altitudeRange.mtr, collapse = " to "),
# " in bins of ", altitudeBinSize, "m\n",
# "Timebins of: ", timeBinduration_sec, " seconds or ",
# timeBinduration_sec/3600, " hours"))
# }
#
# # Calculate the MTR
# # =====================================================================
# mtr = computeMTR(dbName = dbName,
# echoes = dbData$echoData,
# classSelection = classSelection.mtr,
# altitudeRange = altitudeRange.mtr,
# altitudeBinSize = altitudeBinSize,
# timeRange = timeRangesTimeBins,
# timeBinDuration_sec = timeBinduration_sec,
# timeZone = targetTimeZone,
# sunriseSunset = dbData$sunriseSunset,
# sunOrCivil = sunOrCivil,
# protocolData = dbData$protocolData,
# visibilityData = dbData$visibilityData,
# manualBlindTimes = cManualBlindTimes,
# saveBlindTimes = saveBlindTimes,
# blindTimesOutputDir = mainOutputDir,
# blindTimeAsMtrZero = blindTimeAsMtrZero,
# propObsTimeCutoff = propObsTimeCutoff,
# computePerDayNight = computePerDayNight,
# computeAltitudeDistribution = TRUE)
#
# # Save the mTR to file, if requested
# # =====================================================================
# if (saveMTR2File){
# if (computePerDayNight){
# outputFile = paste0("mtr_", dbName,
# "_alt", paste(altitudeRange.mtr,
# collapse = "to"),
# "per", altitudeBinSize, "m_",
# "time",
# paste(format(as.Date(timeRangesTimeBins), "%Y%m%d"),
# collapse = "to"),
# "perDayNight_",
# "cut", propObsTimeCutoff, ".rds")
# } else {
# outputFile = paste0("mtr_", dbName,
# "_alt", paste(altitudeRange.mtr,
# collapse = "to"),
# "per", altitudeBinSize, "m_",
# "time", paste(format(as.Date(timeRangesTimeBins), "%Y%m%d"),
# collapse = "to"),
# "per", timeBinduration_sec, "s_",
# "cut", propObsTimeCutoff, ".rds")
# }
# saveMTR(mtr = mtr,
# filepath = mainOutputDir,
# fileName = outputFile)
# }
#
## ----eval=FALSE---------------------------------------------------------------
# # Make time series plot
# # =============================================================================
# # Set time range for plots (in targetTimeZone) ;
# # A plot is created for each timerange
# # use format "yyyy-MM-dd hh:mm"
# # ===========================================================================
# timeRangePlot = list(c("2021-01-15 00:00", "2021-01-22 00:00"),
# c("2021-01-23 00:00", "2021-01-31 00:00"))
#
# # Set output path for plots
# # ===========================================================================
# outputDir.plots = file.path(mainOutputDir, "Plots")
#
# # Set the class of which the MTR data should be plotted.
# # If not set or set to “allClasses”, MTR of all classes will be plotted.
# # ===========================================================================
# plotClass = "allClasses"
#
# # Set the maximum value of the y-Scale of the plot to the given value.
# # If negative or not set, the y-Scale is auto-scaled.
# # ===========================================================================
# maxMTR.plot = -1
#
# # Set the propObsTimeCutOff for the plot
# # Time bins with a proportional observation time smaller than
# # propObsTimeCutoff will not be shown in the plot
# # ===========================================================================
# propObsTimeCutoff.plot = 0.2
#
# # Set if the spread (first and third quartile) should be plotted
# # ===========================================================================
# plotSpread = TRUE
#
# # Print message
# # ===========================================================================
# message("Plotting time series of MTR values..")
#
# # Make Plot
# # ===========================================================================
# plotLongitudinalMTR(mtr = mtr,
# maxMTR = maxMTR.plot,
# timeRange = timeRangePlot,
# targetTimeZone = "Etc/GMT0",
# plotClass = plotClass,
# propObsTimeCutoff = propObsTimeCutoff.plot,
# plotSpread = plotSpread,
# filePath = outputDir.plots)
#
## ----eval=FALSE---------------------------------------------------------------
# # Make an exploration plot
# # =============================================================================
# # Set the maximum value of the y-Scale of the plot to the given value.
# # If negative or not set, the y-Scale is auto-scaled.
# maxAltitude.plot = -1
#
# # Print message
# # ===========================================================================
# message("Plotting exploration..")
#
# # Make Plot
# # ===========================================================================
# plotExploration(echoData = dbData$echoData,
# timeRange = timeRangePlot,
# targetTimeZone = "Etc/GMT0",
# manualBlindTimes = cManualBlindTimes,
# visibilityData = dbData$visibilityData,
# protocolData = dbData$protocolData,
# sunriseSunset = dbData$sunriseSunset,
# maxAltitude = maxAltitude.plot,
# filePath = outputDir.plots)
#
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.