Professional Documents
Culture Documents
Project Report Format
Project Report Format
Project Report Format
Project Report
On
“Weather”
(Submitted in partial fulfillment for the award of Degree of BCA)
In
Computer Science Engineering
Submitted By
Kartikey Lodha
(2020SUBCAX028)
Under Guidance
Of
Ms Pallavi Purohit
Assistant Professor
Department or Computer Science & Engineering
Session: (2022-23)
1
Candidate’s Declaration
I hereby declare that the work, which is being presented in the Project Report, entitled
“Weather” in partial fulfillment for the award of Degree of “Bachelor of Computer
Application” in Computer Science Engineering and submitted to the Department of Computer
Science Engineering, Sangam University. Project is a record of my own investigations carried
under the guidance of Ms Pallavi Purohit Assistant Professor Department of Computer
Science & Engineering, School of Engineering & Technology, Sangam University, Bhilwara
Rajasthan, India.
I have not submitted the matter presented in this dissertation anywhere for the any other Degree.
Kartikey Lodha
Computer Science& Engineering
Enrollment No.:2020SUBCAX038
Sangam University, Bhilwara(Raj.)
2
CERTIFICATE
I feel great pleasure in certifying that the project entitled “Weather” carried out by Kartikey
Lodha under the supervision of Ms Pallavi Purohit . I recommend the submission of project.
Date:
(Dr.Vikas Somani)
Head, Department of Computer Science & Engineering,
School of Engineering & Technology,
Sangam University, Bhilwara
3
CERTIFICATE
I feel great pleasure in certifying that the project entitled “Weather” carried out by Kartikey
Lodha under the supervision of Ms Pallavi Purohit. I recommend the submission of project.
Date:
(Mr.Nirmal Singh)
Assistant Professor,
Department of Computer Science &Engineering,
School of Engineering & Technology,
Sangam University, Bhilwara
4
ACKNOWLEDGMENT
This Dissertation would not have been successful without the guidance and support of a large
number of individuals.
Ms Pallavi Purohit my Project supervisor, who believed in me since the initial stages of my
dissertation work. For long time, she provided insightful commentary during my regular
meetings, and she was consistently supportive of my proposed research directions. I am
honored to be her first graduate student. Her consistent support and intellectual guidance
inspired me to innovative new ideas. I am glad to work under her supervision.
I am grateful to Dr. Vikas Somani, Head, Department of Computer Science Engineering for his
excellent support during my dissertation work. Mr. Nirmal Singh, Bachelor’s of computer
science, spent many hours listening to my concerns, working with me to navigate the
bureaucracy, and assisting me with my most important decisions.
Thanks all my friends and classmates for their love and support. I have enjoyed their company
so much during my stay at college name. I would like to thank all those who made my stay in
college, an unforgettable and rewarding experience.
Last, but not least I would like to thank my parents for supporting me to do complete my
master’s degree in all ways.
Kartikey Lodha
2020SUBCAX038
5
CONTENTS
6
29
29
29
32
7
Feature Testing
LIST OF FIGURES
Figure 3 Left page shows how the application before measurements are taken. 30
Second page shows an example of how a stable weather prognosis
would look like
Figure 4 A page shown when better weather is predicted 31
Figure 5 Atmospheric Pressure to Weather Forecast 38
Figure 6 Enter the city 42
Figure 7 After the enter the city temperature date and time 43
8
LIST OF TABLES
Sr.No Name of Figure Page No.
Table 1 Initial Evaluation Criteria 32
Table 2 Exploration Criteria from Concept Creation 33
Table 3 NXP Weather forecast model 35
Table 4 Wind speed prediction given from pressure difference 35
9
ABSTRACT
Across the world there are an ever-growing number of cars that lead to the daily challenge of
finding a parking space in urban areas. Studies have shown that about 30% of the cars in the
traffic jam are looking for a parking space and the average time to find a free space is eight
minutes. Because of this fast increment in the vehicle count in the city, parking is a significant
issue for citizens. Drivers waste a lot of time in just attempting to discover a parking spot.
Parking lots are likewise a business in the urban communities, where you pay to park your
vehicle. This is noticeable in shopping centers, industrial complexes and open parking lots.
With quickly changing technology, the concept of Smart City has become very popular around
the world. ‘Smart’ means everything is associated with one another through Internet of Things
(IoT) and data at each node is collected and is used to find different patterns. As a small step
towards such Smart City, we intend to make a parking arena without any human involvement.
Especially, in huge parking spaces, it becomes very difficult to find a vacant parking slot
without any human assistance. Not just it is a very tedious process yet in addition more fuel is
consumed by the vehicle prompting air pollution. So if the driver already know, which slot is
available in advance, it will be easier to park a vehicle also saving time and energy.
10
CHAPTER 1
INTRODUCTION
Weather forecasting means predicting the weather and telling how the weather changes with change in time.
Change in weather occurs due to movement or transfer of energy. Many meteorological patterns and features
like anticyclones, depressions, thunderstorms, hurricanes and tornadoes occur due to the physical transfer of
heat and moisture by convective processes. Clouds are formed by evaporation of water vapor. As the water
cycle keeps on evolving the water content in the clouds increases which in turn leads to precipitation. This is
how the convective process happens and also the change in weather. Many factors like temperature, rainfall,
pressure, humidity, sunshine, wind and cloudiness are considered for predicting the weather. It is also possible
to identify the different types of clouds associated with different patterns of weather. These patterns of weather
help in predicting the weather forecast. In the past, people used barometric pressure, current weather
conditions, sky condition to predict whereas now there are many computer based models that consider the
atmospheric factors to predict the weather. These methods are not accurate and the reason is due to the chaotic
nature of the atmosphere as it keeps on changing. Even predicting weather for a longer period of time will not
be accurate that is why most of the current forecasting models predict weather only for a couple of days not
more than 10. The accuracy gets reduced with increase in time. Weather forecasting isn't a purely mechanical
linear process, that standard practices and procedures will be directly applied. Forecaster’s job is predicated on
theoretical background and lab work which needs several years of study but mainly day-to-day practice inside a
weather forecasting service having a particular technical environment. The work of the forecasters has evolved
significantly over the years to require advantage of both scientific and technological improvements. The skill of
numerical models has improved such a lot that some centers are automating routine forecasts to permit
forecasters to specialize in high impact weather or areas where they can add significant value. So it's dangerous
to see a regular thanks to achieve weather forecasts.
How can a weather forecast model be implemented and displayed on a mobile application, so that the user
intuitively understands the resulting weather forecast?
11
This project is to create a Weather Report application with a third party server and users to enable the users to
Forecast Weather. The project should be very easy to use enabling even a novice person to use it. This
application is also developed to make people’s life hustle free by introducing some of the extraordinary features
like Weather updates which are going on all around the world and also getting the weather forecast before going
out of the home. This project is to design an application which consists of all the basic features which the users
can access all of them with a single click
`1.3 Motivation
Weather forecasters look at current state of the weather and forecast maps and add their personal
experience to come up with a forecast and to issue warnings. The mission of the NWS is to reduce the loss of
life and the loss of property associated with weather related hazards, and to mitigate the economic impact of
disruptive weather. The U.S. arguably has the world’s worst weather: hurricanes, tornados, large hail, blizzards,
droughts, heat waves. Hazardous weather is the reason the National Weather Service (NWS) was founded. The
weather forecasting systems can be classified into three categories based on the model or methodology
employed for forecasting, namely statistical models, Artificial Intelligence models, and hybrid models. Among
the three categories, statistical models deal with linear datasets. The commonly applied statistical models
include ARMA, ARIMA, and its variants. Artificial Intelligence models are further classified into machine
learning predictors and deep learning predictors. Machine learning and deep learning models are better for
handling nonlinear datasets. Artificial Neural Networks, Support Vector Machine, Extreme Learning Machine,
Auto encoders, Convolutional Neural Networks, Recurrent Neural Networks, and Long Short Term Memory
Networks are some of the popular AI models employed for weather forecasting tasks. Hybrid models are
combinations of two or more models that aim to enhance the performance of the forecasting models further. The
main aim of weather forecasting models is to predict temperature, humidity, dew point, rainfall, and wind speed
based on past data. Analysis of the literature reveals that several surveys related
to wind speed forecasting have been conducted. However, reliable and comprehensive surveys related to
forecasting weather parameters, such as temperature, rainfall, dew point, and humidity, are much less. Hence,
an extensive survey on various weather forecasting models and their classifications are presented in this paper.
1.4 Objectives
Students will understand that the elements of weather can be observed, measured, and recorded to make
predictions and determine simple weather patterns.
Objective 1: Observe, measure, and record the basic elements of weather. Observe, measure, and record data on
the basic elements of weather over a period of time (i.e. precipitation, air temperature, wind speed and direction,
and air pressure).
Objective 2: Interpret recorded weather data for simple patterns.
a. Observe and record effects of air temperature on precipitation (e.g., below freezing results in snow, above
freezing results in rain).
b. Graph recorded data to show daily and seasonal patterns in weather.
c. Infer relationships between wind and weather change (e.g., windy days often precede changes in the weather;
south winds in Utah often precede a cold front coming from the north).
Objective 3: Evaluate weather predictions based upon observational data. Predict weather and justify prediction
with observable evidence. Evaluate the accuracy of student and professional weather forecasts.
The WEATHER project approaches the topic of extreme events and their impacts on transport systems from an
economic perspective. Its core objective is to "determine the physical impacts and the economic costs of climate
12
change on transport systems and identify the costs and benefits of suitable adaptation and emergency
management strategies". This general objective is detailed by 7 sub-goals:
Develop a dynamic model on the causal relations between the severity and frequency of extreme events,
the functionality of critical sectors and social welfare.
Detailed assessment of the vulnerable elements and damage costs in transport systems.
Work out efficient and innovative mechanisms of managing disastrous events, focusing on maintaining
the function of transport systems.
Identify appropriate and efficient adaptation strategies for transportation infra-structures and services to
ease the impacts of extreme events in the future.
Clarify the role of governments, companies and industry associations.
Check the applicability of theoretical concepts of vulnerability assessment, crises prevention and
adaptation strategies with practical experiences and local conditions
Dissemination of project findings to a wider audience to fostering the debate on the costs and
implications of more frequent and severe weather conditions on transport systems.
1.5 Purpose:
The purpose of developing weather website is to fetch the data in the need of taking information about weather
worldwide. Another purpose for developing this software is to generate the report automatically at the end .
It can collect the data in minute or hourly based on the setting mode. The user can change the setting mode
according to the purpose of the project respectively. Weather station has now been increasingly accepted as the
technology that facilities faster and more up to date monitoring of the earth atmosphere system.
1.6 Scope:
The scope of the project is the system on which the software is installed, i.e. the project is developed as a
desktop application, and it will work for a particular institute or organization. But later on the project can be
modified to operate it online. The intention of developing weather app is to fetch the data in the need of taking
information about weather worldwide. Another purpose for developing this software is to generate the report
automatically at the end of the session or in the between of the session or in the between of the session as they
require. This project is basically a desktop application which means 3 self-contained software runs on which it
has been installed under the user control.
13
1.8 SCOPES OF STUDY
i. The study will conduct at Kolej Kediaman 2 at UMP Gambang.
ii. This study will focus to collect the data such as wind speed, temperature and rainfall data.
iii. Analyze the hydrological data from JPS hydrological station with hydrological data collected used
weather station at UMP Gambang.
iv. Develop temporal pattern for selected hydrology station.
14
Out of this rich material plus insights gained from other research the document concludes with targeted
recommendations for several stake holder groups and public bodies.
15
CHAPTER 2
2 CSS:
CSS stands for Cascading Style Sheets. It is a style sheet language which is used to describe the look and
formatting of a document written in markup language. It provides an additional feature to HTML. It is generally
used with HTML to change the style of web pages and user interfaces.
Cascading Style Sheets, fondly referred to as CSS, is a simple design language intended to simplify the process
of making web pages presentable.CSS is designed to enable the separation of document content from document
presentation, including elements such as font, layout, and colors. The style definitions are usually saved in
external .css files.
3 JAVASCRIPT:
JavaScript is a scripting language that enables you to create dynamically updating content, control multimedia,
animate images, and pretty much everything else. (Okay, not everything, but it is amazing what you can achieve
with a few lines of JavaScript code.) JavaScript, often abbreviated as JS, is a programming language that is one
of the core technologies of the World Wide Web, alongside HTML and CSS. As of 2022, 98% of websites use
JavaScript on the client side for webpage behavior, often incorporating third-party libraries.
4 VISUALCODE:
Visual Studio Code is a free coding editor that helps you start coding quickly. Use it to code in any
programming language, without switching editors. Visual Studio Code has support for many languages,
including Python, Java, C++, JavaScript, and more Visual Studio Code is a streamlined code editor with support
for development operations like debugging, task running, and version control. It aims to provide just the
tools a developer needs for a quick code-build-debug cycle and leaves more complex workflows to fuller
featured IDEs, such as Visual Studio IDE.
2.1.2 Hardware requirements
1) Processor: 64 bit, quad-core, 2.5 GHz minimum per core
2) Ram: 4 GB or more
3) Hard disk: 20 GB of available space or more.
4) Display: Dual XGA (1024 x 768) or higher resolution monitors
16
2.2 SAMPLE CODE:
Index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Weather App</title>
integrity="sha512-
1sCRPdkRXhBV2PBLUdRb4tMg1w2YPf37qatUFeS7zlBy7jJI8Lf4VHwWfZZfpXtYSLy85pkm9GaYVYMf
w5BC1A=="
</head>
<body>
<div class="weatherContainer">
17
<!-- Input Divition for city name -->
<div class="search">
<ul>
</ul>
</button>
</form>
</div>
<h2 id="city"></h2>
<div class="todayDates"></div>
<div id="todayTime"></div>
</div>
</body>
<script src="script.js"></script>
</html>
18
Style.css
*{
margin: 0;
padding: 0;
box-sizing: border-box;
body {
width: 100%;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background-color: #66e3e2;
.weatherContainer {
margin: 2rem;
border-radius: 1rem;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
#weatherForm input {
19
border: none;
color: black;
outline: none;
font-size: 1rem;
font-family: sans-serif;
background: transparent;
#weatherForm ul li {
list-style: none;
.searchBtn {
background: transparent;
border: none;
.searchBtn ul li {
list-style: none;
font-size: 1.2rem;
#weatherForm {
display: flex;
justify-content: space-around;
.appHeading {
text-align: center;
margin-bottom: 1rem;
20
font-family: 'Poppins', sans-serif;
#city {
text-transform: capitalize;
text-align: center;
margin-top: 1rem;
.weatherContainer img {
width: 50%;
#temp {
word-spacing: -8px;
font-size: 2.5rem;
margin-bottom: 1rem;
#temp sup {
font-size: 1.5rem;
.weatherMain {
font-family: sans-serif;
#todayTime,
.todayDates {
21
font-family: sans-serif;
line-height: 2rem;
/* Utility Classes */
.d-flex {
display: flex;
.justify-space-around {
justify-content: space-around;
.justify-space-center {
justify-content: center;
.align-items-center {
align-items: center;
.f-col {
flex-direction: column;
#weatherForm {
flex-direction: column;
#weatherForm input {
22
text-align: center;
margin-bottom: 1rem;
Script.js
// Variabless
e.preventDefault();
// API URL
23
let url = `https://api.openweathermap.org/data/2.5/weather?q=${city}&units=metric&appid=${apiID}`
fetch(url).then((response) => {
return response.json();
}).then((data) => {
weather.innerHTML = weatherMain;
myCity.innerHTML = city;
temp.innerHTML = `${tempValue}`
weather.innerHTML = `${weatherMain}`
temp.innerHTML = `${tempValue}<span><sup>o</sup>C</span.`;
if (weatherMain == 'Clear') {
image.src = `./Images/sunny.png`
myWeatherContainer.style.backgroundColor = '#ec6e4c'
if (weatherMain == 'Clouds') {
image.src = `./Images/clouds.png`
myWeatherContainer.style.backgroundColor = '#86d3d3'
if (weatherMain == 'Rain') {
image.src = `./Images/Rain.png`
myWeatherContainer.style.backgroundColor = '#494bcf'
24
}
if (weatherMain == 'Drizzle') {
image.src = `./Images/Drizzle.png`
myWeatherContainer.style.backgroundColor = '#8ecfcf'
if (weatherMain == 'Haze') {
image.src = `./Images/Drizzle.png`
myWeatherContainer.style.backgroundColor = '#d8ced2'
// Updating dates
switch (currentMonth) {
case 0:
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
25
dates.innerHTML = `${date.getDate()}, May`
break;
case 5:
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
break;
case 10:
break;
case 11:
break;
// Updating times
26
function leftInterval() {
if (hours == 0) {
hours = 12;
setInterval(leftInterval, 1000);
})
})
2.3.1. Dataset:
The dataset we considered is named “HYTA”. It consists of various images of all types of clouds. We
considered 4 clusters for all the types of clouds namely: clear sky, sunny, cloudy and sunny, rainy. For each
type of cluster this HYTA dataset[14] consists of nearly 8 to 10 images. Every image consists of only plain sky
with respective clouds and no other objects like buildings, trees and poles. In some images the sun might appear
along with the sky and clouds. Along with this standard dataset we considered 4 different datasets. Every data
set consists of more than 10 photos for each type of cloud. These datasets are considered to compare the outputs
obtained and check the accuracy of the model developed. This comparison will be useful for the future
development of the model.
27
Figure 1 Scatterplot graph of different clusters formed after training the dataset
2.3.2. ANALYSIS:
The final output obtained for the input image is given in a text format as shown in the figure below.
28
CHAPTER 3
Work Structure
This chapter mentions how the work was structured. Section 3.1 explains how the pre-study was planned and
the reason behind each phase of the stage. In section 3.2 the software development process is introduced and
the iterations of implementation are explained. Continuing, Evaluation criteria are set up in section 3.3. The
last section 3.4 explains how a testing phase will be planned to proceed and see how well the prototype meets
the initial criteria.
3.1 Pre-Study
The pre-study includes five phases. They are, in chronological order
(1) Idea Generation,
29
The concept was created from drawing and was done together with the stakeholder. The reason for creating
the concept with the stakeholder was to use the concept creation as an unstructured interview for creating
criteria on how the mobile application should work and function. It was also done to understand what is
needed from a weather forecast model.
The drawings were made without technical restrictions in mind. With created sketches it could be determined
what underlying technical functions were needed be implemented and what weather forecast model would
need to be able to do.
Figure 3 are two drawings that show what the application should display when starting the application.
Furthermore the drawings show an example of what a user can see when a forecast has been made. The left
page has a label describing to the user that no measurements have been done at the current location. There is
also gesture indicator that should be swiped downwards to get a new measurement. There are labels describing
to the user either that no more measurements has been made yet. The right picture has a label describing the
prognosis and a label describing when the last measurement was made. The yellow circle represents an icon
that represents the weather.
Figure 4 is another example drawing on how a page could look when a weather forecast is given. The drawing
adds labels that describe where the user is located through coordinates and city name. It also holds a play-list
button for a functionality of the prototype that is not of interest for the thesis. Furthermore, a label was added
to describe when weather would change. Further drawings were made to grasp the sequence of the mobile
application (See Appendix A, in Swedish).
Figure 3: Left page shows how the application before measurements are taken. Second page shows an example of how a stable
weather prognosis would look like
30
Figure 4: A page shown when better weather is predicted
Throwaway prototyping will be used in the concept creation stage of the project. It is partially done to
determine exploration criteria. To understand how measurements would be converted, it had to be understood
which weather forecast model suited the concept creation the best. After choosing the model the criteria whom
which the model is not suited are removed as they are improbable to achieve.
31
3.2.1 Iterations of Implementation Phases
The iterations of work were planned the following way: The first phase was planned to create a user
experience for the prototype. The purpose of the phase was to understand, design and implement how the
pages of the drawn in the concept creation could be translated into pages in an environment. The second phase
was planned to design and implement all the elements of the user interface. The phase was planned to allow all
the elements of the user interface to work that wasn’t dependent on the weather model. Furthermore, those
who were prepared to allow for the implementation of algorithm that was to be based on the weather model.
The third phase was planned to implement the weather forecast as an algorithm, and update the of the view
controller that was dependent on getting a update when a new weather measurement or forecast was made.
The essential goal with this phase was to find a way to notify the view controller in real time of new
measurements and forecasts.
33
CHAPTER 4
Theoretic Background
This chapter describes the information retrieved that have been deemed to be relevant subjects for the work to
implement a prototype. Section 3.1 explains why atmospheric pressure could be used to build a weather
forecast and presents a model that converts atmospheric pressure to weather predictions. Section 3.2 mentions
visualizing information to a user. Section 3.3 describes the fundamentals of creation. Section 3.4 goes through
related work, weather forecasts in different mediums and wearable technology.
The model revolves around categorizing atmospheric pressure changes into 5 different weather forecasts; not
stable, stable good weather, stable weather, stable rainy weather and unstable rainy weather (thunderstorms
etc.) as shown in Table 3. Changes in time and pressure is used for the model to predict the weather. Forecasts
are created through measurements taken periodically every 30th minute for three hours. Throughout these
measurements the forecast
34 Measurement Weather Prediction
dP/dt > 0.25 kPa/h Quickly rising High Pressure System, not stable
0.05 kPa/h < dP/dt < 0.25 kPa/h Slowly rising High Pressure System, stable good weather
-0.05 kPa/h < dP/dt < 0.05 kPa/h Stable weather condition
dP/dt < -0.25 kPa/h Quickly falling Low Pressure, Thunderstorm, not
-0.25 kPa/h < dP/dt < -0.05 kPa/h Slowly falling Low Pressure System, stable rainy weather
Table 3: NXP Weather forecast model
Atmospheric pressure can also predict wind speeds. A model has been created (shown in Table 4.) that looks
how atmospheric pressure in the region of the North Sea and Baltic can be used to predict wind speeds in the
region. The model measures the pressure difference (measured in hecto- Pascal) per hour. Beaufort scale (Bft)
is used for measuring wind speed and is used in the model as the unit for the wind speed prediction.
Measurement Wind Speed Prediction (Bft) dP/dt > 3.3 hPa/h 10
dP/dt ≈ 3 hPa/h 8-9
dP/dt > 1.3 hPa/h 6-7 dP/dt ≈ -2 hPa/h
6-7
dP/dt < -2 hPa/h 8-12
Table 4: Wind speed prediction given from pressure difference
4.2.1 Usability
Designing a product to be useful is helped by a structured and systematic process, beginning with high-level
goals and moving to specific objectives. True usability is invisible, for example if something is going well, we
don’t notice it . And, though there are quantitative approaches to testing the usability of products, it is
impossible to measure the usability of something. We can only measure how many problems we have using
something. ISO 9241-11 is an international standard for “Guidance on Usability”. It provides a definition for
the term usability. “The extent to which a product can be used by specified users to achieve specified goals
with effectiveness, efficiency and satisfaction in a specified context of use” is how the standard defines
usability. Efficiency is the quickness with which the user’s goal can be accomplished accurately and
completely and is usually a measure of time. For example, you might set a usability testing benchmark that
says ‘‘95 percent of all users will be able to load the software within 10 minutes.’’. Effectiveness refers to the
extent to which the product behaves in the way that users expect it to and the ease with which users can use it
to do what they intend. This is usually measured quantitatively with an error rate.. Effectiveness and
Intuitiveness correlate. It means that an effective application is bound to be intuitive. Learnability is a part of
effectiveness and has to do with the user’s ability to operate the system to some defined level of competence
35
after some predetermined amount and period of training (which may be no time at all). It can also refer to
the ability of infrequent users to relearn the system after periods of inactivity. Satisfaction refers to the user’s
perceptions, feelings, and opinions of the product, usually captured through both written and oral questioning
4.2.2Intuitive Interaction
According to the Oxford English Dictionary ‘Intuition’ is a phenomenon in which a person understands
something instinctively without the need of conscious reasoning. In connection with mobile phones, this
definition can be interpreted as the ability to understand a user interface without conscious reasoning. Based
on this description, intuitive interaction can be described as an experience where a user can directly use a user
interface, as the interface works as the user expects. If an application would truly be intuitive then people of
different technical background would be able to use the application in the same way, quick and somewhat
effortless. This is somewhat hard to achieve. People get used to how different things work within their mobile
environment. To achieve better intuitiveness of an application it is important to work within the guidelines of
the platform. If a mobile application behaves as others on the same platform, users will instinctively know
how to use the application.
4.2.3 Affordance
Understanding if you should pull or push to open a door is not always intuitive. If the door needs pushing and
has a button that needs to be pressed by both hands you will be put in a position where you be able to push the
door.
Affordance is used in user interface design, just like physical objects you have to make objects that work as a
user would think they would. Unlike physical objects, digital views have to rely on representing usage clues
through visual representation. Objects that are associated with user gestures are for instance buttons and scroll-
able views.
Types of affordances related to user interface design and user experience are explicit, pattern, hidden, false,
metaphorical and negative affordance. Explicit affordance can be seen in a raised button that state click me.
The raised level of the button gives a clue that the button can be pressed. The wording of “click me” tells a
user explicitly that it is possible to click the button. Pattern affordance is used for the format of pages.
Knowing that a link is blue and underlined for a certain interface is due to pattern affordance. Hidden
affordances try to remove certain objects so that the user is not overwhelmed with info. Instead objects of
lesser importance are put for instance into a drop down menu. False affordance is when intuitive clues for
objects don’t lead to the assumed usage. Metaphorical affordance is a way to design digital objects to work as
a certain physical object. Negative affordance happens when objects that tend to have a function don’t do
anything.
CHAPTER 5
Implementation: Design
This chapter describes the detailed design of the implemented mobile application prototype. It covers the steps
from that a mobile application receives a measurement of atmospheric pressure from barometric sensors until a
weather forecast is displayed to the user in 5.1. and 5.2. Section 5.3 explains how the user interface was
37
designed to look during the different phases of the prototype. 5.4 continues the chapter by explaining the
graphical choices of the user interface.
The ensuing phase calculates the difference between the new measurement and the initial measurement.
Afterwards, the difference value gets mapped to a forecast, at that point the forecast is done. When a forecast is
achieved the user interface gets notified and updates the weather icon and description and sets the last
measurement to zero.
38
For each new measurement after the initial measurement a prediction can be displayed to the user. The
predicted forecast is sent to a view controller that is always waiting for a new forecast. Given that it gets a
new forecast the display gets updated with an icon and text that represent that forecast.
CHAPTER 6
Implementation: Programming
39
This chapter describes how the design was implemented to become an application. Each component of the
implementation is described. 6.1 Describes the implementation through the design pattern of MVC. 6.2
Summarizes how Notification Center was used to broadcast and update the user interface. 6.3-6.6 describes
various methods used to allow for various functionality of the application.
6.1.1 Controller
The application uses one view controller for the page that displays the weather forecast. This view controller
has several views, which it controls. It also holds several other variables that are used in the view controller.
6.1.2 View
The views can be communicated through code by their respective instance variables of the view controller.
The page that displayed the weather forecast had four views.
Descriptions of time, weather, coordinates were implemented into UILabel which is the stock view for holding
text. These labels are outlets for this application. Meaning their properties can be updated through other
functions in the view controller.
UI Button was used for the button that allows the user to ask for a new forecast. UI Button view is a stock
view that allows for basic button interaction. The view was extended to include a border with rounded corners.
The button was implemented as an action. This means that an interaction with the button leads to a function
being run. This is the only way it can run. This button is therefore not a variable which can have its properties
changed from outside the function.
UI Image View was used for representing the weather with an image icon. This is the stock view class for
holding images.
Background View is a custom view based on the UI View. The difference between Background View and UI
View is the added properties. Corner Radius and Gradients are added properties that can be changed in the
storyboard. It was used for the background of the page. The thought was that it would be reused for several
views. The custom class ended up being reluctant since it was decided to only use a one colored background.
6.1.3 Model
The application used a single model. The model was used to update the user interface of the main view
controller. The model includes the implementation of the model that creates the weather forecast. When an
algorithm prediction is made it gets mapped to a certain forecast in the model and the view controller gets
notified.
40
The view-controller holds an instance of the model. It is a variable. The variable has been set to be an instance
of the model class. Methods of the model class can be called through the instance variable.
6.2 Broadcasting
In order to make the views of the view controller update when a new forecast was made a Notification Center
was implemented. It provides a mechanism for broadcasting information within a program[50]. A method can
post(send) a notification or observe a notification. When a notification is posted the observer calls a method.
Three different notifications were implemented for the application measurement In Progress, New Weather
Forecast and first Measurement. They are all posted(sent) in the model and observed in the view Did Load
method in the view controller.
Measurement In Progress was a notification that notified the view controller that a new measurement has been
initiated. The method called would hide the button that allows for a new manual forecast request. To replace it
a activity indicator (buffer) would appear. The time label would also be updated to repeatedly show that
measurements are being gathered.
New Weather Forecast was a notification that notified the view controller that a new forecast had been
created. The method called in the view controller gets the forecast object that holds an enum of the new
forecast. With the help of the enum it updates the icon, weather description and the measurement of the user
interface. It also sets the time since last measurement to zero. Continuing, it calls to stop showing an activity
indicator and instead show the button that allows for a new forecast. The method in the model that posts the
notification is the weather forecast algorithm that runs the post when a forecast has been made.
First Measurement was a notification that notifies that first measurement was finished. Like, new weather
Forecast its observing method calls to stop showing an activity indicator and instead show the button that
allows for a new forecast.
Figure 7: after the enter the city temperature date and time
42
CHAPTER 7
The following chapter describes how testing was done. Sub-section 7.1 discusses testing if features of the
application worked as intended. 7.2 mentions how the user-test interview was done.
7.1 Feature Testing
The last step in each iterative process phase was the testing phase. development allows several ways of testing
the code. During the programming process a developer gets real-time warnings and errors that signals errors in
a code line. For testing the application created, a developer can run the application on a simulator. The code
can also be run with a debugger that allows for the user to insert breakpoints to test certain parts of the code.
The simulator imitates a real Apple phone and can be chosen to be any iPhone or model. By choosing different
models one can test how the user interface looks on different devices. The restriction with the simulator is that
Bluetooth connectivity can’t be tested. For testing functionality with the need of Bluetooth the created
application can be run on actual hardware, an . It allows to test all the functionality.
The functionality was tested first without the connection with the chip that holds the barometer. All the
timers in the program were set to allow the prototype to run as fast as possible. A random number generator
was used to send in theoretically reasonable values into the weather forecast algorithm. Breakpoints were
added at every point a notification gets posted and observed. This allows for the partial test of whether the
weather forecast algorithm gives out the correct forecast for the correct value. To see if the weather
43
description and icon got updated correctly, the printed out weather forecast was compared with what the
simulator shows. Other functionaries were tested the same way to see if they are called at the right instance.
The functionality was also tested with the barometer and the chip that holds it. The same setup was used. The
only difference was measurements were done outdoors and the measurements used were from the barometer it
was therefore necessary to wait for a real forecast. The purpose of this test was to see if the created prototype
worked with the barometer and if not what the problem was.
7.2 User-Test
To evaluate the prototype further user tests were done that involved a brief interview and case study. The
location of the user tests was “Nymble”, it is a place where engineers of all faculties hang out and study. 10
random engineers were chosen. The participants got a functional background of the prototype. Each question
has a subject that the question tries to answer.
The following questions (noted Q:) were asked and the following answers (noted A:) were what the
participants could answer:
After the above questions were answered a participant got asked for how long they would wait for a
measurement of the prototype in a certain scenario.
44
Subject: Willingness to wait for a forecast without internet connectivity
Q: Say you are camping or adventuring at a not densely inhabited area and have not internet. As such it might
be hard for you to get a weather forecast. For how long would you be willing to wait to get a forecast from the
application?
Note: the application can run and predict a forecast automatically.
45
CHAPTER 8
CONCLUSION
Through the used development process a weather forecast prototype has been created. The prototype can
convert a measurement of difference in atmospheric pressure into a weather forecast, achieved through the
implemented weather forecast model. The forecast is displayed to the user through an UI. An analyze of the
User-test shows that the target group – Tech enthusiasts, find the prototype’s UI intuitive. Furthermore, it
shows that one of the major strengths of the prototype was the ability to predict the weather without the need
of a internet connection. Additional functionality could have been achieved if the weather forecast model
could have estimated at a 10-minute approximation when a weather change was bound to occur.
A created development process was a necessity in creating the prototype. Without it there would not be
enough structure for the prototype to be created and evaluated. The development process lead to the finished
prototype. More iterations of the process and prototype could have lead to a better prototype. The process still
has the ability to be refined. It would have been beneficial to add further interviews with the target group
throughout the period of developing the prototype. Revising the criteria with each interview to make the
resulting prototype suit the wants of the target group better. With that said, a similar process as to the one used
can be used for development of other Smart Clothes. The difference in approach would lay in the research
topic and choices of parameters. Parameters that are used to find an applicable model for displaying
information to the user.
46
An interesting way forward would be to see how the prototype could be implemented further. One way would
be to allow the prototype to “talk” with other weather stations and share that data between the measurement
holders. It would be a way to decentralize weather forecasting. The final result of such implementation could
lead to improving weather forecasts globally if a large user base is found. This idea extends weather forecasts.
In fact, all Smart Clothes that measure a users surroundings and has internet connectivity at some point of the
day can be scaled in the same way.
Additional features could be added to the prototype. When a forecast is made a notification should be sent to
the notification center. The feature would allow the user of the prototype to get updates on forecasts even if
he’s not currently in the application. An obstacle of adding this feature would be to make sure that the
prototype can run as a background task. Another feature would be to fetch forecasts from a weather forecast
provider when the user has internet connectivity. Both forecasts could then be displayed or used to create one
improved forecast.
Generally, any weather forecasting applications and sources would give the weather report of a particular area
with the help of GPS or using satellite information. Our model can give the weather condition at any point of
time for any place with the help of the current cloud image at that place. In future this model can be developed
as to predict the weather for the next few hours based on the image with the help of cloud analysis. This paper
can be extended to get weather forecast for the next few days; we can modify our system by using different
algorithms and use that as an extension to our current project.
By this system weather forecasting report generation becomes easy. Less chances of malfunctioning are there.
The system has reached a steady state but still improvements are to be made. The system is operated at a high
level of efficiency and all the work and user associated with the system understand its advantage. It was
intended to solve as requirement specification. In future this system can be implemented to all over the world
and will be designed for cross platform.
Graphing
• Once data has been gathered for about a month, students can create line graphs to show temperature and
precipitation patterns (if there was any precipitation recorded), cloud and precipitation relationships, as well as
air pressure and temperature or wind relationships. Repeat these graphs every month to help student compare
weather conditions in summer, fall, winter, and spring seasons.
• Frequency and graph types can vary depending on your specific data and time constraints. *Another idea for
concluding the unit on weather is to have students rotate through giving a student weather forecast at the end of
each day. Either to their class, or if possible on the afternoon announcements for the school. This increases
interest, motivation, and scientific communication skills.
*Date can be collected prior to teaching the unit – copying the data and collecting information on cloud cover.
Students can make predictions and will help with identification of patterns when the weather unit is taught This
lesson uses a weather chart that was adapted from original UEN lesson: TRB 4:2 - Investigation 7 - Interpreting
Weather Data
47
REFRENCES
[1] Weather Forecasting using Satellite Image Processing and Artificial Neural Networks by Nilay S. Kapadia ,
Urmil Parikh in IJCSIS vol 14,No.11, Nov 2016.
[2] Machine Learning Applied to Weather Forecasting Mark Holmstrom, Dylan Liu, Christopher Vo Stanford
University, December 15, 2016.
[3] ANALYSIS ON THE WEATHER FORECASTING AND TECHNIQUES Janani.B, Priyanka Sebastian,
Jan 2014.
[4] The Weather Forecast Using Data Mining Research Based on Cloud Computing. ZhanJie Wang and A. B.
M. Mazharul Mujib,2017.
[5] Cloud image analysis for rainfall prediction: A survey by Minakshi Gogoi and Gitanjali Devi, Advanced
Research in EEE, Oct-Dec 2015.
[6] https://www.mathworks.com/matlabcentral/answers/422493-how-to-do-normalized-blue-red-ratio-
operationof-an-image
[7] https://medium.com/sentinel-hub/improving-cloud-detection-with-machine-learning-c09dc5d7cf13
[8] https://www.geeksforgeeks.org/k-means-clustering-introduction/
[9] https://scied.ucar.edu/learning-zone/clouds/how-clouds-form
[10] https://www.science-emergence.com/Articles/How-to-create-a-scatter-plot-with-several-colors-in-
matplotlib-/
[11] https://www.universityworldnews.com/post.php?story=20120620192857538
48