{"id":2199242,"date":"2024-01-01T10:00:31","date_gmt":"2024-01-01T18:00:31","guid":{"rendered":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2199242"},"modified":"2024-04-12T01:07:09","modified_gmt":"2024-04-12T08:07:09","slug":"creating-app-to-identify-climbing-locations-using-weather-api","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api","title":{"rendered":"Creating an application to identify climbing locations using a weather forecast API"},"author":346302,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[738191],"tags":[758502,773072,26191,758802,26711],"industry":[],"product":[761642,769152],"class_list":["post-2199242","blog","type-blog","status-publish","format-standard","hentry","category-developers","tag-app-development","tag-climbing","tag-custom-apps","tag-native-apps","tag-weather","product-platform","product-sdk-qt"],"acf":{"authors":[{"ID":346302,"user_firstname":"Andrew","user_lastname":"Bladon","nickname":"abladon","user_nicename":"abladon","display_name":"Andrew Bladon","user_email":"abladon@esri.com","user_url":"","user_registered":"2023-09-22 12:52:41","user_description":"Andrew is a Software Engineer working on the ArcGIS Maps SDKs for Native Apps in Esri\u2019s Edinburgh R&amp;D Centre. Andrew helps bring the latest features available in ArcGIS location services into the core C++ business logic used by the Native Maps SDKs. Andrew has a Bachelor of Science and PhD in Geology, and prior to working with Esri he spent seven years working as a Consultant and Product Engineer for a geological modelling software company.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/ABladon_Headshot-465x465.jpg' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"short_description":"Overview of an app that retrieves weather forecast data from a RESTful API and helps identify locations with suitable weather for climbing","flexible_content":[{"acf_fc_layout":"content","content":"<p style=\"text-align: center;\"><strong><em>This blog introduces a common challenge facing rock climbers and gives an example of how the Native Maps SDKs were used to develop a tool to help.<\/em><\/strong><\/p>\n<h2 id=\"1\"><strong>Introduction<\/strong><\/h2>\n<p>One of the greatest challenges to having a successful day climbing in the mountains (<em><strong>Figure 1<\/strong><\/em>) is assessing the weather, which varies over short distances and time frames, especially in Scotland where I live. To find the mountain with the best weather, and therefore the best chance of a successful day\u2019s climbing, I spend hours reviewing the forecast from multiple sources. This is inefficient and error-prone.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2213012,"id":2213012,"title":"BeinnEighe","filename":"BeinnEighe-scaled.jpg","filesize":678754,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/BeinnEighe-scaled.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\/beinneighe","alt":"","author":"346302","description":"","caption":"Figure 1: Exceptional climbing on Triple Buttress, Beinn Eighe, NW Scotland..","name":"beinneighe","status":"inherit","uploaded_to":2199242,"date":"2023-12-30 06:24:43","modified":"2023-12-30 06:25:19","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1896,"height":2560,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/BeinnEighe-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/BeinnEighe-scaled.jpg","medium-width":193,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/BeinnEighe-scaled.jpg","medium_large-width":768,"medium_large-height":1037,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/BeinnEighe-scaled.jpg","large-width":800,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/BeinnEighe-1138x1536.jpg","1536x1536-width":1138,"1536x1536-height":1536,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/BeinnEighe-1517x2048.jpg","2048x2048-width":1517,"2048x2048-height":2048,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/BeinnEighe-344x465.jpg","card_image-width":344,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/BeinnEighe-800x1080.jpg","wide_image-width":800,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>To make this process more efficient and reliable, I\u2019ve created an Android application using the <a href=\"https:\/\/developers.arcgis.com\/documentation\/mapping-apis-and-services\/apis-and-sdks\/\">ArcGIS Maps SDK for Native Apps<\/a>, which requests weather forecast data from a RESTful API and stores this in a custom data structure. The <a href=\"https:\/\/developers.arcgis.com\/qt\/\">ArcGIS Maps SDK for Qt<\/a> allowed me to create both desktop and mobile applications, which meant I could use the application on my laptop at home and on my phone while on climbing trips. I also used the Qt SDK as it&#8217;s the development framework I&#8217;m most familiar with. However, the same workflow and principles apply for the other Native Maps SDKs (Java, .NET, Swift and Kotlin). The application makes accessing forecast data quick and automates some of the review process.<\/p>\n<p>In this blog I\u2019ll:<\/p>\n<ul>\n<li><a href=\"#2\">Introduce the challenge of assessing mountain weather.<\/a><\/li>\n<li><a href=\"#3\">Provide a summary of my current weather review process.<\/a><\/li>\n<li><a href=\"#4\">Provide a high-level overview of the Conditions Navigator application.<\/a><\/li>\n<li><a href=\"#5\">Describe how the application helped on a recent two-week long mountaineering trip.<\/a><\/li>\n<\/ul>\n<p>The source code for the application which I&#8217;ll discuss is available on <a href=\"https:\/\/github.com\/AndrewBladon\/QtWeatherApp\">AndrewBladon\u2019s QtWeatherApp<\/a> GitHub repository.<\/p>\n<h2 id=\"2\"><strong>The Challenge<\/strong><\/h2>\n<p>Most people fit climbing around jobs and other commitments. Often, this means climbing within a given time frame, such as the weekend. When restricted to a given day or days, the challenge becomes finding the mountain and climb where the weather conditions are suitable. However, the relationship between the weather and the condition of climbing routes is complex. Here\u2019s a couple of the relationships that are considered:<\/p>\n<ul>\n<li>Different rock types dry at different rates, making it important to monitor rainfall on a given mountain.<\/li>\n<li>Identifying the direction of the wind relative to the orientation of the cliff helps assess how windy it will be on a climb.<\/li>\n<\/ul>\n<p>To assess these relationships requires an understanding of the spatial and temporal variations of several parameters (e.g. rainfall, wind speed, wind direction, and visibility) across a region as well as knowledge of the climbs (e.g. rock type, cliff orientation, and length of climb). Modern forecast sources (e.g. <a href=\"https:\/\/www.metoffice.gov.uk\/\">Met Office<\/a>, <a href=\"https:\/\/www.mwis.org.uk\/\">Mountain Weather Information Service<\/a>) present forecast data in multiple useful formats (e.g. tables and time-series maps). However, it\u2019s challenging to gain the required understanding of multiple parameters across a region. This challenge is especially prevalent in Scotland, where I live, because the mountains are low (&lt;1345m) and exposed to Atlantic weather systems. This results in unstable weather that varies rapidly over short distances.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2213032,"id":2213032,"title":"ChallengingConditions (Custom)","filename":"ChallengingConditions-Custom.png","filesize":3456784,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChallengingConditions-Custom.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\/challengingconditions-custom","alt":"","author":"346302","description":"","caption":"Figure 2: Despite following a long manual process to assess the conditions, it is common to have mis-judged: a) abseiling from Slochd Wall on Beinn a\u2019Bhuird, Cairngorms, Scotland after finding the key section of the climb covered in wet, slimy moss and unclimbable; b) climbing carefully through streaks of water on the lower section of Minus One Direct, Ben Nevis, Scotland.","name":"challengingconditions-custom","status":"inherit","uploaded_to":2199242,"date":"2023-12-30 06:41:37","modified":"2023-12-30 06:42:22","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1800,"height":1202,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChallengingConditions-Custom-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChallengingConditions-Custom.png","medium-width":391,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChallengingConditions-Custom.png","medium_large-width":768,"medium_large-height":513,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChallengingConditions-Custom.png","large-width":1617,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChallengingConditions-Custom-1536x1026.png","1536x1536-width":1536,"1536x1536-height":1026,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChallengingConditions-Custom.png","2048x2048-width":1800,"2048x2048-height":1202,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChallengingConditions-Custom-696x465.png","card_image-width":696,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChallengingConditions-Custom-1617x1080.png","wide_image-width":1617,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2 id=\"3\"><strong>Current Weather Review Process<\/strong><\/h2>\n<p>Until now, I\u2019ve been collating and reviewing the forecast data manually. This involves looking at the forecast for multiple locations and iteratively building a mental model of the weather conditions for the given timeframe. As mentioned previously, this is time-consuming and error-prone. Despite doing this for many years, the challenge of characterizing the relationship between multiple dependent variables often results in mis-judgements (<strong><em>Figure 2<\/em><\/strong>). Mis-calculations, are especially frustrating when on long (\u22651 week) trips to the bigger mountain ranges (e.g. European Alps), as such trips require significant time and effort to organise and are costly. In these scenarios it\u2019s especially important to be able to make decisions quickly and efficiently. Following a challenging trip to the Western Alps in 2022 (<strong><em>Figure 3<\/em><\/strong>) and motivated by a planned two-week trip to the Dolomites in Northern Italy in September 2023, I decided it was time to reduce the chances of weather-related issues and created a tool that made this process more efficient and reliable.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2213042,"id":2213042,"title":"ChamonixRain","filename":"ChamonixRain-scaled.jpg","filesize":668527,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChamonixRain-scaled.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\/chamonixrain","alt":"","author":"346302","description":"","caption":"Figure 3: Sheltering from an especially heavy downpour of rain in Chamonix, France.","name":"chamonixrain","status":"inherit","uploaded_to":2199242,"date":"2023-12-30 06:44:11","modified":"2023-12-30 06:44:32","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":2560,"height":1920,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChamonixRain-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChamonixRain-scaled.jpg","medium-width":348,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChamonixRain-scaled.jpg","medium_large-width":768,"medium_large-height":576,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChamonixRain-scaled.jpg","large-width":1440,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChamonixRain-1536x1152.jpg","1536x1536-width":1536,"1536x1536-height":1152,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChamonixRain-2048x1536.jpg","2048x2048-width":2048,"2048x2048-height":1536,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChamonixRain-620x465.jpg","card_image-width":620,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ChamonixRain-1440x1080.jpg","wide_image-width":1440,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<h2 id=\"4\"><strong>The Conditions Navigator Application<\/strong><\/h2>\n<p>My aim was to create an application that worked on my Android phone which automatically retrieved forecast data from a weather API and guided us towards mountains where the weather was suitable for climbing. To achieve this, I created an application called the Conditions Navigator using the ArcGIS Maps SDK for Qt, which was deployed to my Android phone (<strong><em>Figure 4<\/em><\/strong>). The Qt Maps SDK is a great tool for efficiently creating cross-platform applications, so I could use the application on both my laptop and phone.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2213072,"id":2213072,"title":"ConditionsNavigatorDemo","filename":"ConditionsNavigatorDemo.gif","filesize":8790599,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ConditionsNavigatorDemo.gif","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\/conditionsnavigatordemo","alt":"","author":"346302","description":"","caption":"Figure 4: Screen recording of the Conditions Navigator application being used on an Android emulator, with the two main functions being demonstrated: 1) viewing forecast data for a location selected by the user, and 2) categorising mountain conditions as good, marginal, or bad for a given day or days according to a set of hard-coded criteria. Mountain conditions are indicated by colouring the pin symbol as green, orange, and red for good, marginal, and bad conditions respectively. Uncategorised mountains are shown with the default dull red coloured pin symbol.","name":"conditionsnavigatordemo","status":"inherit","uploaded_to":2199242,"date":"2023-12-30 07:11:37","modified":"2023-12-30 07:13:40","menu_order":0,"mime_type":"image\/gif","type":"image","subtype":"gif","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":221,"height":480,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ConditionsNavigatorDemo-213x200.gif","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ConditionsNavigatorDemo.gif","medium-width":120,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ConditionsNavigatorDemo.gif","medium_large-width":221,"medium_large-height":480,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ConditionsNavigatorDemo.gif","large-width":221,"large-height":480,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ConditionsNavigatorDemo.gif","1536x1536-width":221,"1536x1536-height":480,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ConditionsNavigatorDemo.gif","2048x2048-width":221,"2048x2048-height":480,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ConditionsNavigatorDemo-214x465.gif","card_image-width":214,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ConditionsNavigatorDemo.gif","wide_image-width":221,"wide_image-height":480}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>The fundamental building block of the application is a map with a <a href=\"https:\/\/developers.arcgis.com\/documentation\/mapping-apis-and-services\/maps\/basemap-layers\/\">topographic basemap<\/a>, which provides an application user with information about the terrain adjacent to the summit of each mountain. The map acts as a canvas onto which I built all other functionality.<\/p>\n<p>The second most important component is a representation of each mountain where there is climbing. Each mountain is symbolised on the map using a dull-red coloured pin <a href=\"https:\/\/developers.arcgis.com\/qt\/styles-and-data-visualization\/symbols-renderers-and-styles\/\">symbol<\/a> and represents a custom data structure that stores and curates the weather data for that mountain. To achieve this, I defined a template for my custom data structure (i.e. a custom class) which I called <strong><em>Mountain<\/em><\/strong>. The data structure includes:<\/p>\n<ul>\n<li>Latitude, longitude, and elevation for the summit of the mountain.<\/li>\n<li>Dates of the seven days following the day the application was initialised.<\/li>\n<li>Weather data for the next seven days, including hourly and daily data, which was retrieved from the <a href=\"https:\/\/open-meteo.com\/\">open-meteo.com<\/a> REST API.<\/li>\n<li>A calculation for analysing the forecast data and providing information to other parts of the application, such as UI elements (e.g. identification of max hourly rainfall on all mountains).<\/li>\n<\/ul>\n<p>When the application is initialised, a static free function is called that returns a list of <strong><em>Mountain<\/em><\/strong> objects. This list of <strong><em>Mountain<\/em><\/strong> objects is hard-coded into the application, including information about each mountain such as the location (latitude and longitude) and elevation. This means <strong><em>Mountain<\/em><\/strong> objects are created each time the application is started \u2013 the application is not reliant on a map published online (i.e. web map).<\/p>\n<p>Once the list of mountains is created, the application performs the following initialisation workflow for each mountain (<strong><em>Figure 5<\/em><\/strong>):<\/p>\n<ul>\n<li>Create a symbol and add it to the map. This was done by creating a <a href=\"https:\/\/developers.arcgis.com\/qt\/cpp\/api-reference\/esri-arcgisruntime-graphic.html\">Graphic<\/a> from a <a href=\"https:\/\/developers.arcgis.com\/qt\/cpp\/api-reference\/esri-arcgisruntime-multilayerpointsymbol.html\">MultiLayerPointSymbol<\/a>, and adding this to the map\u2019s <a href=\"https:\/\/developers.arcgis.com\/qt\/cpp\/api-reference\/esri-arcgisruntime-graphicsoverlay.html\">GraphicsOverlay<\/a>.<\/li>\n<li>Retrieve forecast data by sending a HTTPS request to the RESTful <a href=\"https:\/\/open-meteo.com\/\">open-meteo.com<\/a> weather forecast API (an overview of how to do this is given in a <a href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-net\/developers\/integrate-restful-services-with-the-native-maps-sdks\/\">recent blog<\/a>).<\/li>\n<li>Wait for JSON response from forecast service.<\/li>\n<li>Process response and organise forecast data into desired structure.<\/li>\n<\/ul>\n<p>A label is also added to display the name of the mountain using the <a href=\"https:\/\/developers.arcgis.com\/qt\/cpp\/api-reference\/esri-arcgisruntime-labeldefinition.html\">LabelDefinition class<\/a> and a listener is set up using the <a href=\"https:\/\/developers.arcgis.com\/qt\/cpp\/api-reference\/esri-arcgisruntime-mapquickview.html#mouseClicked\">mouseClicked<\/a> and <a href=\"https:\/\/developers.arcgis.com\/qt\/cpp\/api-reference\/esri-arcgisruntime-mapquickview.html#touched\">touched<\/a> events on the map view to identify when a user taps the map (implementation details can be reviewed on <a href=\"https:\/\/github.com\/AndrewBladon\/QtWeatherApp\">AndrewBladon\u2019s QtWeatherApp repository<\/a>).<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2213102,"id":2213102,"title":"InitialisationWorkflowDiagram","filename":"InitialisationWorkflowDiagram.png","filesize":1137168,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/InitialisationWorkflowDiagram.png","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\/initialisationworkflowdiagram","alt":"","author":"346302","description":"","caption":"Figure 5: Schematic diagram outlining the key elements of the ConditionsNavigator application. The initialisation workflow (blue arrows) comprised the following steps for each mountain: 1) Create a symbol and add it to the map, 2) send HTTPS request to forecast provider REST API, 3) wait for the JSON response, and 4) process the response and organise data into custom data structure. Once the application was initialised, a user could trigger two main actions (red arrows): displaying a forecast for a mountain when it was selected by the user and applying a filter to all mountains to identify areas suitable for climbing.","name":"initialisationworkflowdiagram","status":"inherit","uploaded_to":2199242,"date":"2024-01-01 06:35:26","modified":"2024-01-01 22:29:13","menu_order":0,"mime_type":"image\/png","type":"image","subtype":"png","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1679,"height":1614,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/InitialisationWorkflowDiagram-213x200.png","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/InitialisationWorkflowDiagram.png","medium-width":272,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/InitialisationWorkflowDiagram.png","medium_large-width":768,"medium_large-height":738,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/InitialisationWorkflowDiagram.png","large-width":1123,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/InitialisationWorkflowDiagram-1536x1477.png","1536x1536-width":1536,"1536x1536-height":1477,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/InitialisationWorkflowDiagram.png","2048x2048-width":1679,"2048x2048-height":1614,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/InitialisationWorkflowDiagram-484x465.png","card_image-width":484,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/InitialisationWorkflowDiagram-1123x1080.png","wide_image-width":1123,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"content","content":"<p>Once the initialisation workflow has been completed, forecast data is available for each mountain and the application is ready for user-interactions.<\/p>\n<p>The application has two main functions:<\/p>\n<ul>\n<li>Display the forecast for a mountain for the next seven days using Qt\u2019s <a href=\"https:\/\/doc.qt.io\/qt-6\/qtcharts-index.html\">Chart<\/a> and <a href=\"https:\/\/doc.qt.io\/qt-6\/qml-qtquick-tableview.html\">TableView<\/a> user interaction elements.\n<ul style=\"padding-left: 40px;\">\n<li><strong>User-interaction:<\/strong> When a user taps on the symbol for a mountain, forecast data are displayed in a panel.<\/li>\n<li><strong>Purpose:<\/strong> Quick review of forecast data for a mountain, enabling the forecast in different locations to be assessed efficiently.<\/li>\n<\/ul>\n<\/li>\n<li>Categorise weather conditions at each mountain as good, marginal, or bad (indicated using green, orange, and red pins respectively), for a given day or days based on a set of hard-coded criteria:\n<ul style=\"padding-left: 40px;\">\n<li><strong>User-interaction:<\/strong> When the user presses the filter button and selects the desired day(s), the symbols are coloured according to the criteria.<\/li>\n<li><strong>Purpose:<\/strong> Automate a component of the process of assessing the climbing conditions at various locations based on the relationship between multiple weather parameters (e.g. wind speed and precipitation).<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<table style=\"margin-left: auto; margin-right: auto;\">\n<tbody>\n<tr>\n<th style=\"background-color: #999999;\"><strong>Parameter<\/strong><\/th>\n<th style=\"color: green; background-color: #999999;\"><strong>Good condition<\/strong><\/th>\n<th style=\"color: orange; background-color: #999999;\"><strong>Marginal condition<\/strong><\/th>\n<th style=\"color: red; background-color: #999999;\"><strong>Bad condition<\/strong><\/th>\n<\/tr>\n<tr>\n<td>Daily Rainfall [mm]<\/td>\n<td>&lt; 1<\/td>\n<td>1 \u2013 5<\/td>\n<td>\u2265 5<\/td>\n<\/tr>\n<tr>\n<td>Windspeed [km\/h]<\/td>\n<td>&lt; 20<\/td>\n<td>20 \u2013 40<\/td>\n<td>\u2265 40<\/td>\n<\/tr>\n<tr>\n<td>Description of most severe weather [World Meteorological Organnisation code]<\/td>\n<td>&#8220;Clear&#8221;, &#8220;Mainly Clear&#8221;, &#8220;Partly cloudy&#8221;, &#8220;Overcast&#8221;, or &#8220;Unknown&#8221;<\/td>\n<td>&#8220;Fog&#8221;, &#8220;Drizzle, &#8220;Rain&#8221;, &#8220;Snow&#8221;, &#8220;Rain Showers&#8221;, or &#8220;Snow Showers&#8221;<\/td>\n<td>\u201cThunderstorms\u201d<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n"},{"acf_fc_layout":"sidebar","content":"<p><strong><em>Disclaimer: The parameters outlined in the table above are defined from the authors personal experience and preferences. They should not be seen as widely accepted criteria for climbing conditions and should not be reused without reviewing them in the context of your desired activity and preferences.<\/em><\/strong><\/p>\n","image_reference":false,"layout":"standard","image_reference_figure":"","snippet":"","spotlight_name":"","section_title":"","position":"Center","spotlight_image":false},{"acf_fc_layout":"content","content":"<p>For more information about how the application was implemented, you can review the code as part of <a href=\"https:\/\/github.com\/AndrewBladon\/QtWeatherApp\">AndrewBladon\u2019s QtWeatherApp GitHub repository<\/a>. The mountains in this version of the application are the Munro\u2019s &#8211; the 282 highest mountains in Scotland with an elevation greater than 914.4m (3000ft). The source code can be used to deploy your own version of the application or as a starting point for developing your own application.<\/p>\n<h2 id=\"5\"><strong>How the Conditions Navigator helped make my holiday a success<\/strong><\/h2>\n<p>As mentioned previously, the Conditions Navigator application was initially developed for a climbing holiday to the Dolomites, Northern Italy, in early September 2023. Even before we left Edinburgh, the application started adding value. Because we had easy access to forecast data for the entire mountain range, we could quickly and easily monitor the weather conditions during the week prior to our departure and assess the weather for the first week of our trip. We could balance this easily with our other commitments (e.g. work and family). With easy access to the weather forecast and an understanding of the recent weather history, which we gained by monitoring the forecast for the week prior to our departure, we could start to identify some initial climbing objectives before leaving home.<\/p>\n<p>While in Italy, the application continued to help. Very little of our time was spent reviewing forecasts. We were able to identify areas in the mountain range where the weather was good and make informed decisions quickly. This meant we had plenty of time to enjoy the local beer and pizza! Because we had decided to camp in order to be flexible, we could move to areas where the weather was favourable and there were climbs we wanted to do. This meant we were able to climb on 10 out of the 11 days we had available and in three different regions: Cortina d&#8217;Ampezzo, Canazei, and Arco. Overall, a very successful trip!<\/p>\n<p>Photos from two of the more significant climbs we did on Cima Grande (2999m) and Tofana di Rozes (3225m) are shown in <strong><em>Figure 6<\/em><\/strong> to <strong><em>Figure 11<\/em><\/strong>. To see more photos from the trip, visit my <a href=\"https:\/\/storymaps.com\/stories\/3a97a7d599f844e4811660fc46e97fed\">Climbing in the Dolomites StoryMap<\/a>.<\/p>\n<h2 id=\"6\"><strong>Summary<\/strong><\/h2>\n<p>I\u2019ve introduced one of the challenges faced by people planning to rock climb in the mountains, which is assessing the mountain weather conditions. I also gave an overview of the process I currently follow to overcome this challenge. I\u2019ve shown that there are a number of variables to consider and tried to highlight how mistakes and mis-judgements are common due to the size and complexity of the task. I then introduced the Conditions Navigator, which is an application created using the ArcGIS Maps SDK for Qt. The application aims to make the process of reviewing the mountain weather conditions more efficient and reliable. Finally, I described how the application helped make a recent climbing trip to the Dolomites in Northern Italy a success.<\/p>\n<p>To find out more about developing geospatial applications using Esri\u2019s developer technologies, including the various developer API\u2019s available as well as samples and tutorials, visit Esri\u2019s <a href=\"https:\/\/developers.arcgis.com\/\">ArcGIS Developers page<\/a>. To learn more about the application discussed in this blog, visit <a href=\"https:\/\/github.com\/AndrewBladon\/QtWeatherApp\">AndrewBladon\u2019s QtWeatherApp GitHub repository<\/a>.<\/p>\n"},{"acf_fc_layout":"image","image":{"ID":2213212,"id":2213212,"title":"RouteTopos","filename":"RouteTopos-scaled.jpg","filesize":667222,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/RouteTopos-scaled.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\/routetopos","alt":"","author":"346302","description":"","caption":"Figure 6: The Dibona Arete on Cima Grande (a) and the Southeast Arete on Tofana di Rozes (b). The routes are indicated by the red lines (dashed line indicates the route is not visible \u2013 e.g. behind a rock buttress). The position of photo\u2019s shown in the figures are shown.","name":"routetopos","status":"inherit","uploaded_to":2199242,"date":"2024-01-01 07:04:45","modified":"2024-01-01 07:05:08","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1278,"height":2560,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/RouteTopos-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/RouteTopos-scaled.jpg","medium-width":130,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/RouteTopos-scaled.jpg","medium_large-width":768,"medium_large-height":1538,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/RouteTopos-scaled.jpg","large-width":539,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/RouteTopos-767x1536.jpg","1536x1536-width":767,"1536x1536-height":1536,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/RouteTopos-1022x2048.jpg","2048x2048-width":1022,"2048x2048-height":2048,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/RouteTopos-232x465.jpg","card_image-width":232,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/RouteTopos-539x1080.jpg","wide_image-width":539,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"image","image":{"ID":2213222,"id":2213222,"title":"High_up_on_Dibona_Arete","filename":"High_up_on_Dibona_Arete-scaled.jpg","filesize":1156456,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/High_up_on_Dibona_Arete-scaled.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\/high_up_on_dibona_arete","alt":"","author":"346302","description":"","caption":"Figure 7: Lo\u00efc Galland climbing up to a belay mid-way up Cima Grande (see Figure 6 for approximate location).","name":"high_up_on_dibona_arete","status":"inherit","uploaded_to":2199242,"date":"2024-01-01 07:05:36","modified":"2024-01-01 07:06:19","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1920,"height":2560,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/High_up_on_Dibona_Arete-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/High_up_on_Dibona_Arete-scaled.jpg","medium-width":196,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/High_up_on_Dibona_Arete-scaled.jpg","medium_large-width":768,"medium_large-height":1024,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/High_up_on_Dibona_Arete-scaled.jpg","large-width":810,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/High_up_on_Dibona_Arete-1152x1536.jpg","1536x1536-width":1152,"1536x1536-height":1536,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/High_up_on_Dibona_Arete-1536x2048.jpg","2048x2048-width":1536,"2048x2048-height":2048,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/High_up_on_Dibona_Arete-349x465.jpg","card_image-width":349,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/High_up_on_Dibona_Arete-810x1080.jpg","wide_image-width":810,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"image","image":{"ID":2213232,"id":2213232,"title":"AndyLeadingOnDibonaArete","filename":"AndyLeadingOnDibonaArete_v2-scaled.jpg","filesize":738226,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnDibonaArete_v2-scaled.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\/andyleadingondibonaarete_v2","alt":"","author":"346302","description":"","caption":"Figure 8: The author climbing high on Cima Grande (see Figure 6 for approximate location). The stunning tower of Cima Piccola is visible in the background.","name":"andyleadingondibonaarete_v2","status":"inherit","uploaded_to":2199242,"date":"2024-01-01 07:07:08","modified":"2024-01-01 07:07:39","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":2560,"height":1920,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnDibonaArete_v2-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnDibonaArete_v2-scaled.jpg","medium-width":348,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnDibonaArete_v2-scaled.jpg","medium_large-width":768,"medium_large-height":576,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnDibonaArete_v2-scaled.jpg","large-width":1440,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnDibonaArete_v2-1536x1152.jpg","1536x1536-width":1536,"1536x1536-height":1152,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnDibonaArete_v2-2048x1536.jpg","2048x2048-width":2048,"2048x2048-height":1536,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnDibonaArete_v2-620x465.jpg","card_image-width":620,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnDibonaArete_v2-1440x1080.jpg","wide_image-width":1440,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"image","image":{"ID":2213242,"id":2213242,"title":"Cima_Ovest_annotated","filename":"Cima_Ovest_annotated.jpg","filesize":913063,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/Cima_Ovest_annotated.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\/cima_ovest_annotated","alt":"","author":"346302","description":"","caption":"Figure 9: Looking west towards Cima Ovest from the summit of Cima Grande (see Figure 6 for approximate location). Note the glider in the dashed red circle).","name":"cima_ovest_annotated","status":"inherit","uploaded_to":2199242,"date":"2024-01-01 07:09:11","modified":"2024-01-01 07:18:32","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":1686,"height":2248,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/Cima_Ovest_annotated-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/Cima_Ovest_annotated.jpg","medium-width":196,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/Cima_Ovest_annotated.jpg","medium_large-width":768,"medium_large-height":1024,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/Cima_Ovest_annotated.jpg","large-width":810,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/Cima_Ovest_annotated-1152x1536.jpg","1536x1536-width":1152,"1536x1536-height":1536,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/Cima_Ovest_annotated-1536x2048.jpg","2048x2048-width":1536,"2048x2048-height":2048,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/Cima_Ovest_annotated-349x465.jpg","card_image-width":349,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/Cima_Ovest_annotated-810x1080.jpg","wide_image-width":810,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"image","image":{"ID":2213252,"id":2213252,"title":"AndyLeadingOnSEArete","filename":"AndyLeadingOnSEArete-scaled.jpg","filesize":997352,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnSEArete-scaled.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\/andyleadingonsearete","alt":"","author":"346302","description":"","caption":"Figure 10: The author climbing on Tofana di Rozes (see Figure 6 for approximate location).","name":"andyleadingonsearete","status":"inherit","uploaded_to":2199242,"date":"2024-01-01 07:09:45","modified":"2024-01-01 07:10:16","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":2560,"height":1920,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnSEArete-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnSEArete-scaled.jpg","medium-width":348,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnSEArete-scaled.jpg","medium_large-width":768,"medium_large-height":576,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnSEArete-scaled.jpg","large-width":1440,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnSEArete-1536x1152.jpg","1536x1536-width":1536,"1536x1536-height":1152,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnSEArete-2048x1536.jpg","2048x2048-width":2048,"2048x2048-height":1536,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnSEArete-620x465.jpg","card_image-width":620,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/AndyLeadingOnSEArete-1440x1080.jpg","wide_image-width":1440,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""},{"acf_fc_layout":"image","image":{"ID":2213262,"id":2213262,"title":"TofanaDiRozesSummit","filename":"TofanaDiRozesSummit-scaled.jpg","filesize":521054,"url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/TofanaDiRozesSummit-scaled.jpg","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\/tofanadirozessummit","alt":"","author":"346302","description":"","caption":"Figure 11: Looking south past the summit cross on Tofana di Rozes.","name":"tofanadirozessummit","status":"inherit","uploaded_to":2199242,"date":"2024-01-01 07:10:34","modified":"2024-01-01 07:10:56","menu_order":0,"mime_type":"image\/jpeg","type":"image","subtype":"jpeg","icon":"https:\/\/www.esri.com\/arcgis-blog\/wp-includes\/images\/media\/default.png","width":2560,"height":1920,"sizes":{"thumbnail":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/TofanaDiRozesSummit-213x200.jpg","thumbnail-width":213,"thumbnail-height":200,"medium":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/TofanaDiRozesSummit-scaled.jpg","medium-width":348,"medium-height":261,"medium_large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/TofanaDiRozesSummit-scaled.jpg","medium_large-width":768,"medium_large-height":576,"large":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/TofanaDiRozesSummit-scaled.jpg","large-width":1440,"large-height":1080,"1536x1536":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/TofanaDiRozesSummit-1536x1152.jpg","1536x1536-width":1536,"1536x1536-height":1152,"2048x2048":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/TofanaDiRozesSummit-2048x1536.jpg","2048x2048-width":2048,"2048x2048-height":1536,"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/TofanaDiRozesSummit-620x465.jpg","card_image-width":620,"card_image-height":465,"wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/TofanaDiRozesSummit-1440x1080.jpg","wide_image-width":1440,"wide_image-height":1080}},"image_position":"center","orientation":"horizontal","hyperlink":""}],"related_articles":[{"ID":1816982,"post_author":"10242","post_date":"2023-01-24 06:30:29","post_date_gmt":"2023-01-24 14:30:29","post_content":"","post_title":"Five tips for developing native applications using web maps","post_excerpt":"","post_status":"publish","comment_status":"closed","ping_status":"closed","post_password":"","post_name":"five-tips-for-developing-your-native-applications-using-web-maps","to_ping":"","pinged":"","post_modified":"2024-04-12 03:15:24","post_modified_gmt":"2024-04-12 10:15:24","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=1816982","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"},{"ID":2102902,"post_author":"346302","post_date":"2023-10-25 08:45:17","post_date_gmt":"2023-10-25 15:45:17","post_content":"","post_title":"Integrating the Places Service with the Native Maps SDKs using HTTPS requests","post_excerpt":"","post_status":"publish","comment_status":"open","ping_status":"closed","post_password":"","post_name":"integrate-restful-services-with-the-native-maps-sdks","to_ping":"","pinged":"","post_modified":"2024-04-12 01:11:07","post_modified_gmt":"2024-04-12 08:11:07","post_content_filtered":"","post_parent":0,"guid":"https:\/\/www.esri.com\/arcgis-blog\/?post_type=blog&#038;p=2102902","menu_order":0,"post_type":"blog","post_mime_type":"","comment_count":"0","filter":"raw"}],"card_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ClimbingBlogBanner_826x465.png","wide_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ClimbingBlogBanner.png"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Creating an application to identify climbing locations using a weather forecast API An app that helps review the weather and identify places to climb<\/title>\n<meta name=\"description\" content=\"An overview of an app that retrieves weather forecast data from a RESTful API and helps identify places where the weather is suitable for climbing\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating an application to identify climbing locations using a weather forecast API\" \/>\n<meta property=\"og:description\" content=\"An overview of an app that retrieves weather forecast data from a RESTful API and helps identify places where the weather is suitable for climbing\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-12T08:07:09+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\"},\"author\":{\"name\":\"Andrew Bladon\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/f6a1fab5bf55b84d8a089fa8e7efe8fc\"},\"headline\":\"Creating an application to identify climbing locations using a weather forecast API\",\"datePublished\":\"2024-01-01T18:00:31+00:00\",\"dateModified\":\"2024-04-12T08:07:09+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\"},\"wordCount\":12,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"App Development\",\"climbing\",\"custom apps\",\"native apps\",\"Weather\"],\"articleSection\":[\"Developers\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\",\"name\":\"Creating an application to identify climbing locations using a weather forecast API An app that helps review the weather and identify places to climb\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2024-01-01T18:00:31+00:00\",\"dateModified\":\"2024-04-12T08:07:09+00:00\",\"description\":\"An overview of an app that retrieves weather forecast data from a RESTful API and helps identify places where the weather is suitable for climbing\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating an application to identify climbing locations using a weather forecast API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/f6a1fab5bf55b84d8a089fa8e7efe8fc\",\"name\":\"Andrew Bladon\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/ABladon_Headshot-465x465.jpg\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/ABladon_Headshot-465x465.jpg\",\"caption\":\"Andrew Bladon\"},\"description\":\"Andrew is a Software Engineer working on the ArcGIS Maps SDKs for Native Apps in Esri\u2019s Edinburgh R&amp;D Centre. Andrew helps bring the latest features available in ArcGIS location services into the core C++ business logic used by the Native Maps SDKs. Andrew has a Bachelor of Science and PhD in Geology, and prior to working with Esri he spent seven years working as a Consultant and Product Engineer for a geological modelling software company.\",\"url\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Creating an application to identify climbing locations using a weather forecast API An app that helps review the weather and identify places to climb","description":"An overview of an app that retrieves weather forecast data from a RESTful API and helps identify places where the weather is suitable for climbing","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api","og_locale":"en_US","og_type":"article","og_title":"Creating an application to identify climbing locations using a weather forecast API","og_description":"An overview of an app that retrieves weather forecast data from a RESTful API and helps identify places where the weather is suitable for climbing","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2024-04-12T08:07:09+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api"},"author":{"name":"Andrew Bladon","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/f6a1fab5bf55b84d8a089fa8e7efe8fc"},"headline":"Creating an application to identify climbing locations using a weather forecast API","datePublished":"2024-01-01T18:00:31+00:00","dateModified":"2024-04-12T08:07:09+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api"},"wordCount":12,"commentCount":0,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["App Development","climbing","custom apps","native apps","Weather"],"articleSection":["Developers"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api","name":"Creating an application to identify climbing locations using a weather forecast API An app that helps review the weather and identify places to climb","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2024-01-01T18:00:31+00:00","dateModified":"2024-04-12T08:07:09+00:00","description":"An overview of an app that retrieves weather forecast data from a RESTful API and helps identify places where the weather is suitable for climbing","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/sdk-qt\/developers\/creating-app-to-identify-climbing-locations-using-weather-api#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"Creating an application to identify climbing locations using a weather forecast API"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/f6a1fab5bf55b84d8a089fa8e7efe8fc","name":"Andrew Bladon","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/ABladon_Headshot-465x465.jpg","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/10\/ABladon_Headshot-465x465.jpg","caption":"Andrew Bladon"},"description":"Andrew is a Software Engineer working on the ArcGIS Maps SDKs for Native Apps in Esri\u2019s Edinburgh R&amp;D Centre. Andrew helps bring the latest features available in ArcGIS location services into the core C++ business logic used by the Native Maps SDKs. Andrew has a Bachelor of Science and PhD in Geology, and prior to working with Esri he spent seven years working as a Consultant and Product Engineer for a geological modelling software company.","url":""}]}},"text_date":"January 1, 2024","author_name":"Andrew Bladon","author_page":false,"custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2023\/12\/ClimbingBlogBanner.png","primary_product":"ArcGIS Maps SDK for Qt","tag_data":[{"term_id":758502,"name":"App Development","slug":"app-development","term_group":0,"term_taxonomy_id":758502,"taxonomy":"post_tag","description":"","parent":0,"count":8,"filter":"raw"},{"term_id":773072,"name":"climbing","slug":"climbing","term_group":0,"term_taxonomy_id":773072,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":26191,"name":"custom apps","slug":"custom-apps","term_group":0,"term_taxonomy_id":26191,"taxonomy":"post_tag","description":"","parent":0,"count":11,"filter":"raw"},{"term_id":758802,"name":"native apps","slug":"native-apps","term_group":0,"term_taxonomy_id":758802,"taxonomy":"post_tag","description":"","parent":0,"count":17,"filter":"raw"},{"term_id":26711,"name":"Weather","slug":"weather","term_group":0,"term_taxonomy_id":26711,"taxonomy":"post_tag","description":"","parent":0,"count":16,"filter":"raw"}],"category_data":[{"term_id":738191,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":738191,"taxonomy":"category","description":"","parent":0,"count":430,"filter":"raw"}],"product_data":[{"term_id":761642,"name":"ArcGIS Location Platform","slug":"platform","term_group":0,"term_taxonomy_id":761642,"taxonomy":"product","description":"","parent":36601,"count":215,"filter":"raw"},{"term_id":769152,"name":"ArcGIS Maps SDK for Qt","slug":"sdk-qt","term_group":0,"term_taxonomy_id":769152,"taxonomy":"product","description":"","parent":36601,"count":41,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=sdk-qt","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2199242","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/346302"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=2199242"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/2199242\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=2199242"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=2199242"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=2199242"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=2199242"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=2199242"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}