Forecasting

The Mile-High 2019 ISO Forecasting Summit

May 29, 2019

They have a saying in Denver – “If you don’t like the weather, wait five minutes.” While that is clearly an exaggeration, it’s not too far off from what the city’s residents and visitors might experience on any given day in the Mile-High City. And since it was the destination of this year’s 13th annual ISO/RTO/TSO Forecasting Summit, May 7-9, attendees from most of the North American and Australian ISO/RTO/TSO organizations got a taste of how volatile the weather can be sometimes. For example, at the start of the week, the weather was fairly mild as I saw people roaming the streets of downtown in t-shirts and shorts. However, by the end of the week, it was snowing with a bit of rain and cold wind.

While the mercurial weather taught us to expect the unexpected, the engaging presentations and discussions during the summit showed us how forecasters across this rapidly evolving industry are addressing the many pervasive challenges surrounding growing distributed generation (DG), granular load forecasting, long-term load forecasting, and weather and load forecast accuracy.

With increased DG from both renewable and non-renewable technologies, organizations are continually exploring methods of gaining visibility into DG in their service territories. Consequently, one of the big challenges has become determining a superior approach for integrating it into a load forecast. Many attendees shared their experiences using common practices such as load reconstitution and direct modeling and discussed the pros and cons of load forecasting at more granular levels.

In a world where the pressure to produce more accurate load forecasts is the highest it’s ever been, forecasters are perpetually looking to improve the performance of their statistical models. Attendees offered insight into the approaches and tools they’re using to improve forecast performance, and also demonstrated how load forecasters might be able to mitigate the impact of weather forecast error.

Finally, the load implications associated with the growing saturation of electric vehicle charging and cryptocurrency mining—among other items—was also a popular topic of discussion, as organizations look ahead to better understand the impact of these activities on system loads.

With so many of the brightest minds in the industry in one room, one could say the level of expertise was a “mile-high”. That’s certainly a trend that I’d like to see continue to grow.

Si è verificato un errore nell'elaborarazione del modello.
The following has evaluated to null or missing:
==> authorContent.contentFields  [in template "44616#44647#114455" at line 9, column 17]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: contentFields = authorContent.content...  [in template "44616#44647#114455" at line 9, column 1]
----
1<#assign 
2	webContentData = jsonFactoryUtil.createJSONObject(author.getData()) 
3	classPK = webContentData.classPK 
4/> 
5 
6<#assign 
7authorContent = restClient.get("/headless-delivery/v1.0/structured-contents/" + classPK + "?fields=contentFields%2CfriendlyUrlPath%2CtaxonomyCategoryBriefs") 
8contentFields = authorContent.contentFields 
9categories=authorContent.taxonomyCategoryBriefs 
10authorContentData = jsonFactoryUtil.createJSONObject(authorContent) 
11friendlyURL = authorContentData.friendlyUrlPath 
12authorCategoryId = "0" 
13/> 
14 
15<#list contentFields as contentField > 
16   <#assign  
17	 contentFieldData = jsonFactoryUtil.createJSONObject(contentField)  
18	 name = contentField.name 
19	 /> 
20	 <#if name == 'authorImage'> 
21	    <#if (contentField.contentFieldValue.image)??> 
22	        <#assign authorImageURL = contentField.contentFieldValue.image.contentUrl />	 
23			</#if> 
24	 </#if> 
25	 <#if name == 'authorName'> 
26	    <#assign authorName = contentField.contentFieldValue.data /> 
27			<#list categories as category > 
28         <#if authorName == category.taxonomyCategoryName> 
29				     <#assign authorCategoryId = category.taxonomyCategoryId /> 
30				 </#if> 
31      </#list> 
32	 </#if> 
33	 <#if name == 'authorDescription'> 
34	    <#assign authorDescription = contentField.contentFieldValue.data /> 
35			 
36	 </#if> 
37	  
38	 <#if name == 'authorJobTitle'> 
39	    <#assign authorJobTitle = contentField.contentFieldValue.data /> 
40			 
41	 </#if> 
42 
43</#list> 
44 
45<div class="blog-author-info"> 
46	<#if authorImageURL??> 
47		<img class="blog-author-img" id="author-image" src="${authorImageURL}" alt="" /> 
48	</#if> 
49	<#if authorName??> 
50		<#if authorName != ""> 
51			<p class="blog-author-name">By <a id="author-detail-page" href="/w/${friendlyURL}?filter_category_552298=${authorCategoryId}"><span id="author-full-name">${authorName}</span></a></p> 
52			<hr /> 
53		</#if> 
54	</#if> 
55	<#if authorJobTitle??> 
56		<#if authorJobTitle != ""> 
57			<p class="blog-author-title" id="author-job-title" >${authorJobTitle}</p> 
58			<hr /> 
59		</#if> 
60	</#if> 
61	<#if authorDescription??> 
62		<#if authorDescription != "" && authorDescription != "null" > 
63			<p class="blog-author-desc" id="author-job-desc">${authorDescription}</p> 
64			<hr /> 
65		</#if> 
66	</#if> 
67</div>