Taiwan New Year Bird Count

Latest version published by Taiwan Endemic Species Research Institute on Dec 1, 2021 Taiwan Endemic Species Research Institute

The Taiwan New Year Bird Count (Taiwan NYBC) is a citizen science project that aims to monitor the status and trends of migratory waterbirds in Taiwan proper and its outlying islands. It was launched by the Taiwan Wild Bird Federatiopn (TWBF), the Wild Bird Society of Taipei (WBST), the Kaohsiung Wild Bird Society (KWBS) and Taiwan Endemic Species Institute(ESRI) in December 2013. The monitoring methods of the Taiwan NYBC follow the basic principles laid out in the more commonly known Christmas Bird Count. Over the course of 23 days from mid-December to early January (with January 1st as a midpoint), volunteer teams choose a 24-hour period to count all the birds within a circular sample area having a radius of three kilometers. Species, abundance, location, date, start time, end time, party size, survey method and weather are all recorded. Survey methods including line transect, counting flocks, area search, amongst others. This data provides valuable information about the distribution and community composition of Taiwan’s wintering avifauna. This has importance for conservation goals along the East Asian-Australasian Flyway as it offers an in depth look at the site usage of a number of migratory bird species. At the national level, findings are shared with government agencies such as Taiwan's Ministry of the Interior. Internationally, the data is shared with Wetlands International for use in the Asian Waterbird Census. 臺灣新年數鳥嘉年華(NYBC Taiwan)是2013年冬天啟動的全國性的公民科學計畫,目標在於監測台灣及周邊島嶼之度冬水鳥的族群狀態與趨勢。主辦單位包括社團法人中華民國野鳥學會、社團法人台北市野鳥學會、社團法人高雄市野鳥學會及行政院農業委員會特有生物研究保育中心。NYBC Taiwan的監測原則,依循北美洲耶誕節鳥類調查(Chirstmas Bird Count, CBC)的方法,於每年12月中旬至隔年1月中旬的23天內 (以1月1日為中點),每個樣區圓會有一組調查隊在期間內選擇一天或連續24小時,在半徑三公里的樣區園內執行鳥類調查。觀察到的鳥種、數量、地點、起始時間、結束時間、調查人數、調查方法和天氣狀況等資訊都會記錄。調查方法包括穿越線調查法、群集計數法、地區搜尋法和附加紀錄。NYBC Taiwan所產出的資料集為台灣冬季鳥類相提供相當重要的資訊。目前資料亦提供給行政院環境保護署及國際濕地聯盟(Wetland International)作為開放資料。

FreeMarker template error (HTML_DEBUG mode; use RETHROW in production!)

Java method "com.google.common.collect.ImmutableSortedMap.get(Object)" threw an exception when invoked on com.google.common.collect.ImmutableSortedMap object "{http://rs.tdwg.org/dwc/terms/Occurrence=57941, http://rs.tdwg.org/dwc/terms/Event=1119}"; see cause exception in the Java stack trace.

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #assign coreCount = recordsByExtensio...  [in template "WEB-INF/pages/portal/resource_new.ftl" at line 339, column 17]
----

Java stack trace (for programmers):
----
freemarker.core._TemplateModelException: [... Exception message was already printed; see it above ...]
	at freemarker.ext.beans._MethodUtil.newInvocationTemplateModelException(_MethodUtil.java:289)
	at freemarker.ext.beans._MethodUtil.newInvocationTemplateModelException(_MethodUtil.java:252)
	at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:74)
	at freemarker.core.MethodCall._eval(MethodCall.java:65)
	at freemarker.core.Expression.eval(Expression.java:81)
	at freemarker.core.DefaultToExpression._eval(DefaultToExpression.java:84)
	at freemarker.core.Expression.eval(Expression.java:81)
	at freemarker.core.Assignment.accept(Assignment.java:134)
	at freemarker.core.Environment.visit(Environment.java:326)
	at freemarker.core.Environment.visit(Environment.java:332)
	at freemarker.core.Environment.visit(Environment.java:332)
	at freemarker.core.Environment.visit(Environment.java:332)
	at freemarker.core.Environment.process(Environment.java:305)
	at freemarker.template.Template.process(Template.java:378)
	at org.apache.struts2.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:184)
	at org.apache.struts2.result.StrutsResultSupport.execute(StrutsResultSupport.java:206)
	at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:375)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:279)
	at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:179)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at org.gbif.ipt.struts2.CsrfLoginInterceptor.intercept(CsrfLoginInterceptor.java:68)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
	at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:49)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.doIntercept(ConversionErrorInterceptor.java:142)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:137)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:137)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:67)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:133)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:89)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:175)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:167)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:196)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at org.apache.struts2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:121)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at org.gbif.ipt.struts2.RedirectMessageInterceptor.doIntercept(RedirectMessageInterceptor.java:119)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:99)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at org.gbif.ipt.struts2.PrivateDeletedResourceInterceptor.intercept(PrivateDeletedResourceInterceptor.java:83)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at org.gbif.ipt.struts2.SetupAndCancelInterceptor.intercept(SetupAndCancelInterceptor.java:85)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at org.gbif.ipt.struts2.ResourceSessionInterceptor.intercept(ResourceSessionInterceptor.java:41)
	at com.google.inject.struts2.Struts2Factory$ProvidedInterceptor.intercept(Struts2Factory.java:236)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
	at org.apache.struts2.factory.StrutsActionProxy.execute(StrutsActionProxy.java:48)
	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:574)
	at org.apache.struts2.dispatcher.ExecuteOperations.executeAction(ExecuteOperations.java:79)
	at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:141)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at org.gbif.ipt.struts2.CorsFilter.doFilter(CorsFilter.java:23)
	at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
	at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120)
	at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:201)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:544)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:698)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:364)
	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:616)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:831)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1629)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: Key '' not present in map
	at com.google.common.base.Preconditions.checkArgument(Preconditions.java:191)
	at com.google.common.base.Functions$FunctionForMapNoDefault.apply(Functions.java:132)
	at com.google.common.collect.ByFunctionOrdering.compare(ByFunctionOrdering.java:43)
	at com.google.common.collect.CompoundOrdering.compare(CompoundOrdering.java:41)
	at com.google.common.collect.SortedLists.binarySearch(SortedLists.java:274)
	at com.google.common.collect.RegularImmutableSortedSet.indexOf(RegularImmutableSortedSet.java:283)
	at com.google.common.collect.ImmutableSortedMap.get(ImmutableSortedMap.java:532)
	at sun.reflect.GeneratedMethodAccessor345.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at freemarker.ext.beans.BeansWrapper.invokeMethod(BeansWrapper.java:1487)
	at freemarker.ext.beans.SimpleMethodModel.exec(SimpleMethodModel.java:69)
	... 102 more