An error occurred while processing the template.
The following has evaluated to null or missing:
==> serviceLocator.findService("com.eversis.esa.eomall.eopages.core.util.ServiceArticleUtils") [in template "903221#903260#907371" at line 8, column 27]
----
Tip: If the failing expression is known to be 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: serviceArticleUtils = serviceLocator... [in template "903221#903260#907371" at line 8, column 5]
- Reached through: #assign-container [in template "903221#903260#907371" at line 1, column 1]
----
1<#assign 
2 defaultImage = themeDisplay.getPathThemeImages() + '/default_image.png' 
3 journalArticleId = .vars['reserved-article-id'].data 
4 groupId = themeDisplay.getLayout().getGroupId() 
5 journalArticleUtil = serviceLocator.findService("com.eversis.esa.eomall.eopages.core.util.JournalArticleUtils") 
6 journalArticle = journalArticleUtil.getJournalArticleByArticleId(journalArticleId) 
7 journalArticleTitle = .vars['reserved-article-title'].data 
8 serviceArticleUtils = serviceLocator.findService("com.eversis.esa.eomall.eopages.core.util.ServiceArticleUtils") 
9 taxonomyList = serviceArticleUtils.getServiceArticleMarketSectorCategories(journalArticle) 
10 navigationPageService = serviceLocator.findService("com.eversis.esa.eomall.eopages.core.service.NavigationPageService") 
11 organizationUtils = serviceLocator.findService("com.eversis.esa.eomall.eopages.core.util.OrganizationUtils") 
12 organizationId = organizationUtils.getOrganizationIdByGroupId(journalArticle.getGroupId()) 
13 organizationLogo = '' 
14 organizationURL = '' 
15 organizationPhoneNumber = '' 
16 organizationFaxNumber = '' 
17 organizationEmailAddress = '' 
18 organizationCountry = '' 
19 organizationAddress = '' 
20 organizationName = '' 
21 organizationArticleUrl = '' 
22 portalBaseURL = themeDisplay.getPortalURL() 
23 currentUrl = themeDisplay.getPortalURL() + themeDisplay.getURLCurrent() 
24/> 
25 
26<#if organizationId != 0> 
27 <#assign 
28 organization = organizationUtils.getOrganizationById(organizationId) 
29 organizationLogo = organizationUtils.getOrganizationLogoImageURL(organizationId) 
30 organizationPhoneNumber = organizationUtils.getOrganizationPrimaryPhoneNumber(organizationId) 
31 organizationFaxNumber = organizationUtils.getOrganizationFaxNumber(organizationId) 
32 organizationEmailAddress = organizationUtils.getOrganizationPrimaryEmailAddress(organizationId) 
33 organizationURL = organizationUtils.getOrganizationPrimaryWebsiteURL(organizationId) 
34 organizationName = organization.getName() 
35 organizationCountry = organization.getAddress().getCountry().getName() 
36 organizationAddress = organization.getAddress().getStreet1() + ', ' + organization.getAddress().getZip() + ' ' + organization.getAddress().getCity() 
37 organizationAddress = organizationAddress?trim 
38 organizationArticleUrl = navigationPageService.getFriendlyUrlForOrganizationArticle(journalArticle.getGroupId()) 
39 /> 
40 
41 <script type="application/ld+json"> 
42
43 "@context": "https://schema.org", 
44 "@type": "Service", 
45 "name": "${journalArticleTitle}", 
46 "description": "${Description.getData()}", 
47 "logo": { 
48 "@type": "ImageObject", 
49 "url": "${themeDisplay.getPortalURL()}${organizationLogo}" 
50 }, 
51 "image": <#if MainImage??>"${themeDisplay.getPortalURL()}${MainImage.getData()}"</#if>, 
52 "url": "${currentUrl}", 
53 "areaServed": [ 
54 <#if MainImage?? && MainImage.MainImageSubtitle?has_content && MainImage.MainImageSubtitle.getData() != ''> 
55 "${MainImage.MainImageSubtitle.getData()}" 
56 </#if> 
57 ], 
58 <#if organizationId != 0> 
59 "brand": { 
60 "@type": "Organization", 
61 "legalName": "${organizationName}", 
62 "logo": { 
63 "@type": "ImageObject", 
64 "url": "${themeDisplay.getPortalURL()}${organizationLogo}" 
65 }, 
66 "telephone": "${organizationPhoneNumber}", 
67 "faxNumber": "${organizationFaxNumber}", 
68 "email": "${organizationEmailAddress}", 
69 "url": "${organizationURL}" 
70 }, 
71 </#if> 
72 <#if organizationId != 0> 
73 "provider": { 
74 "@type": "Organization", 
75 "legalName": "${organizationName}", 
76 "logo": { 
77 "@type": "ImageObject", 
78 "url": "${themeDisplay.getPortalURL()}${organizationLogo}" 
79 }, 
80 "telephone": "${organizationPhoneNumber}", 
81 "faxNumber": "${organizationFaxNumber}", 
82 "email": "${organizationEmailAddress}", 
83 "url": "${organizationURL}" 
84 }, 
85 </#if> 
86 "serviceType": [ 
87 
88 <#if taxonomyList?has_content> 
89 <#list taxonomyList as taxonomyValue> 
90 "${taxonomyValue.getName()}"<#if taxonomyValue?has_next>,</#if> 
91 </#list> 
92 </#if> 
93
94
95 </script> 
96</#if> 
97 
98<#compress> 
99 <div class="row"> 
100 <div class="col-12 service article service-${journalArticleId}" id="service" data-service-id="${journalArticleId}"> 
101 <div class="col-12 col-lg-8 offset-lg-2 page__section"> 
102 <div class="margin-top-30 row"> 
103 <p class="h5 col-sm-12 text-center font-bold margin-bottom-0 text-uppercase"><@liferay.language key="Service.Service" /></p> 
104 <h1 class="col-12 text-center margin-bottom-30 section__name service__name" data-property="serviceName" data-information-type="main">${journalArticleTitle}</h1> 
105 <#if taxonomyList?has_content> 
106 <div class="col-12 line-clamp-animation"> 
107 <p class="text-center text-uppercase margin-bottom-15 font-bold lines-em-3" data-property="taxonomiesList" data-list="true"> 
108 <#list taxonomyList as taxonomyValue> 
109 <span data-property-items="taxonomiesList">${taxonomyValue.getName()}</span><#if taxonomyValue?has_next>, </#if> 
110 </#list> 
111 </p> 
112 </div> 
113 </#if> 
114 <div class="d-flex justify-space-between col-12"> 
115 <div class="col-3"></div> 
116 <p class="col-6 margin-bottom-30 text-center service__by" data-property="organizationName" data-information-type="main"> 
117 <@liferay.language key="Service.by" /> <a href="${organizationArticleUrl}" title="${organizationName}" >${organizationName}</a> 
118 </p> 
119 <div class="col-3 d-flex extra-options" style="justify-content: flex-end;"> 
120 <button class="generate-pdf margin-right-15"> 
121 <i class="icon eo-icon-pdf"></i> 
122 </button> 
123 <div class="product__share_trigger relative"> 
124 <i class="icon eo-icon-share"></i> 
125 <div class="product__share"> 
126 <span data-link="#share-facebook" data-title="${journalArticleTitle}" data-description="${Description.getData()}" class="padding-right-15"><i class="eo-icon-facebook"></i></span> 
127 <span data-link="#share-linkedin" data-title="${journalArticleTitle}" data-description="${Description.getData()}" class="padding-right-15"><i class="eo-icon-linkedin"></i></span> 
128 <span data-link="#share-twitter" data-title="${journalArticleTitle}" data-description="${Description.getData()}"><i class="eo-icon-twitter"></i></span> 
129 </div> 
130 </div> 
131 </div> 
132 </div> 
133 <#if Description?has_content && Description.getData() != ''> 
134 <p class="col-12 text-center margin-bottom-30 section__description service__description" data-property="productDescription" data-information-type="main">${Description.getData()}</p> 
135 </#if> 
136 </div> 
137 <div class="links links--service"> 
138 <div class="w-100 margin-bottom-30"> 
139 <h4 class="margin-bottom-0"> 
140 <#if MainImage?? && MainImage.MainImageTitle?has_content && MainImage.MainImageTitle.getData() != ''> 
141 ${MainImage.MainImageTitle.getData()} 
142 </#if> 
143 </h4> 
144 <#if MainImage?? && MainImage.MainImageSubtitle?has_content && MainImage.MainImageSubtitle.getData() != ''> 
145 <div>${MainImage.MainImageSubtitle.getData()}</div> 
146 </#if> 
147 </div> 
148 </div> 
149 <#if MainImage?has_content && MainImage.getData()?? && MainImage.getData() !=""> 
150 <div class="section__main_image service__main_image"> 
151 <div class="w-100"> 
152 <div class="ratio-box ratio-box--16-9"> 
153 <img alt="${MainImage.getAttribute("alt")}" data-fileentryid="${MainImage.getAttribute("fileEntryId")}" src="${MainImage.getData()}" onerror='this.src="${defaultImage}"' /> 
154 </div> 
155 </div> 
156 </div> 
157 </#if> 
158 <!-- FAVORITE --> 
159 <button class="button button--favourite button--save-product d-none float-right margin-top-30"> 
160 <i class="icon eo-icon-star"></i> 
161 <span class="button__text"><@liferay.language key="Service.Save-to-list" /></span> 
162 </button> 
163 </div> 
164 </div> 
165 </div> 
166</#compress> 
services

Related Content

Risk modelling
Assess environmental impact of farming, Agriculture, Assessing crop damage due to storms, Monitor crop disease and stress, Assess crop acreage and yield. Harvest, Monitor specific crops types, Forecast crop yields, Detect illegal or undesired crops, Monitor water use on crops and horticulture, Measure land use statistics, Assess environmental impact of farming, Enviroment, Pollution and Climate, Assess crop acreage and yield harvest, Forecast crop yields, Assess environmental impact of farming, Real-estate management
Modelling crop yield risks due to multiple agricutural perils. Crop modeling uses plant sensitivities, environmental data, climatic and weather information to produce geo-statistical risk numbers.
Atmospheric Correction
Assess environmental impact of farming, Agriculture, Assessing crop damage due to storms, Monitor crop disease and stress, Assess crop acreage and yield. Harvest, Monitor specific crops types, Forecast crop yields, Detect illegal or undesired crops, Monitor water use on crops and horticulture, Measure land use statistics, Measure soil water index, Map line of sight visibility (land surface assessment for man-made structur, Communications, Measure land use statistics, Construction, Assess changes in the carbon balance, Education, training and research, Assess climate change risk, Map geological features, Monitor high risk areas, Assess changes to urban and rural areas, Monitor water bodies, Emergency Services, Assess climate forcing, Enviroment, Pollution and Climate, Assess environmental impact of farming, Monitor air quality, Assess air pollutant dispersion, Monitor shallow water habitats, Assess changes in the carbon balance, Assess climate change risk, Assess crop acreage and yield harvest, Forecast crop yields, Assess environmental impact of human activities, Monitor wave exposure, Monitor atmosphere composition, Detect changes in glaciers, Monitor water use on crops and horticulture, Assess land value, ownership, type, use, etc, Assess changes in land use and quality, Measure land use statistics, Monitor coastal ecosystem, Assess and monitor coastal water quality, Monitor land ecosystems and biodiversity, Detect and monitor oil slicks, Monitor of land pollution, Detect and monitor ice risk at sea, Assess dredging operation impacts, Forecast and monitor ocean movement and drift, Forecast weather, Forecasting air quality parameters, Humanitarian Operations and health, Detect and monitor arid areas, Monitor high risk areas, Local and regional planners, Monitor high risk areas, News and Media, Map geological features, Oil and gas, Assess changes in the carbon balance, Utilities
Rese develops and distributes the ATCOR software for atmospheric correction of both satellite and airborne imagery.
GETOpenData
Assess environmental impact of farming, Agriculture, Assessing crop damage due to storms, Monitor crop disease and stress, Assess crop acreage and yield. Harvest, Monitor specific crops types, Forecast crop yields, Detect illegal or undesired crops, Monitor water use on crops and horticulture, Measure land use statistics, Measure soil water index, Assess changes in the carbon balance, Alternative Energy, Forecast and monitor ocean winds and waves, Monitor construction and buildings, Communications, Assess changes to urban and rural areas, Map line of sight visibility (land surface assessment for man-made structur, Assess damage from industrial accidents, Construction, Detect & monitor land movement, uplift, subsidence, heave., Assess changes to urban and rural areas, Education, training and research, Detect and monitor wildfires, Emergency Services, Map and assess Flooding, Monitor water bodies, Monitor Snow Cover, Assess environmental impact of farming, Enviroment, Pollution and Climate, Monitor air quality, Assess air pollutant dispersion, Monitor shallow water habitats, Assess changes in the carbon balance, Assess climate change risk, Assess crop acreage and yield harvest, Forecast crop yields, Assess environmental impact of human activities, Monitor atmosphere composition, Monitor water use on crops and horticulture, Assess land value, ownership, type, use, etc, Assess changes in land use and quality, Measure land use statistics, Monitor coastal ecosystem, Assess and monitor coastal water quality, Monitor land ecosystems and biodiversity, Detect and monitor oil slicks, Monitor of land pollution, Detect and monitor ice risk at sea, Assess dredging operation impacts, Forecast and monitor ocean movement and drift, Forecast weather, Assess changes in the carbon balance, Forestry, Detect and monitor wildfires, Monitor forest resources, Assess environmental impact of forestry, Monitor forest diversity, Monitor water bodies, Humanitarian Operations and health, Monitor business activity, Insurance and Finance, Map hydroelectric and wind farms, Map and monitor of wind energy (wind farms), Assess changes to urban and rural areas, Transport, Assess changes to urban and rural areas, Utilities
Satellite Data as a Service: https://getopendata.gr/en/ GET, in cooperation with Sinergise, offers exclusively for Greece and Cyprus, the innovative and awarded by Copernicus Master, Sentinel-Hub Service. The main service offerings are: WMS/WMTS service – for visualization in desktop or we GIS tools WCS service – direct access service in raw full analysis data WMS Configurator – API for access in data and standardized functions (area of interest, search time period, atmospheric correction activation, spectral bands selection, cloud coverage percentage, mosaic display order) Statistic information service – time series data for a specific area in readable format Notification service – receive notifications when new imagery is available Mosaic generator – for easy download process of required data in GeoTiff or other format
Wineo (Weather information and Earth Observation)
Assess environmental impact of farming, Agriculture, Assessing crop damage due to storms, Monitor crop disease and stress, Assess crop acreage and yield. Harvest, Monitor specific crops types, Forecast crop yields, Detect illegal or undesired crops, Monitor water use on crops and horticulture, Measure land use statistics, Measure soil water index, Assess environmental impact of farming, Enviroment, Pollution and Climate, Assess crop acreage and yield harvest, Forecast crop yields, Assess environmental impact of forestry, Forestry, Monitor high risk areas, Local and regional planners
Decision Support for Farm Management. WE TACKLE…  Minimize production costs  Maximize yields & quality  Minimize environmental impact  Efficient farm operations  Control production procedures  Reduce heterogeneity BY MEANS OF... Optimization of operations during the growing campaign, based on: 1. Remote Sensing (WinEO Data) 2. Agroclimatology (WinEO Data) 3. Agricultural Fleet Management System (MOVILOC) 4. DSS for Farm Management (WinEO GeoBI). WinEO Multi-source data integration: –Agroclimatic data –Satellite images –Other: soil maps, users, yield monitors, harvesters & combine data,… Multitemporal coverage Generation of up to 20 different indexes related to the crop status Analysis of the information generated to provide: –Monitor of crops for plant intake-needs estimations –Biophysical and biochemical variables –Breakdown of the type of crop –Information within the management unit (plot level) –Geographically-continuous agroclimatic indices –Irrigation schedule –High accurate yield estimations