Таким образом netapproximation.dao содержит класс для взаимодействия с источниками хранения информации. В моём случае в качестве таковых выступают файлы. Класс называется CommonDao. Все его методы статические. Они реализуют помещение списков, множеств и хеш-таблиц в файл, а также извлечение списков и хеш-таблиц из файлов.
netapproximation.domain - цель этого пакета - содержать в себе классы представляющие объекты рассматриваемой предметной области. Содержит один класс Coordinates, соответствующий объекту «географические координаты».
netapproximation.errors - содержит определённые мною классы исключений. То есть определив эти исключения я могу где-либо в коде вызвать их. Например можно обработать какое-либо общее исключение и взамен него вызвать своё, точно поясняющее что произошло:
try {
// код разбора JSON объекта
} catch (ParseException e) {
throw new JSONParseError("Ошибка разбора JSON объекта: " + e.toString(), e);
}
Вместо достаточно общего ParseException будет получено JSONParseError, что может облегчить поиск и устранение неполадок.
netapproximation.log - отвечает за логирование. Содержит класс Log.
netapproximation.service - этот пакет обладает основной функциональностью пакета. Содержит 4 класса:
GetDataService
NormalizeMinMaxService
NormalizeMxDxService
TeachService
GetDataService - содержит методы для получения данных с сервиса OpenWeatherMap и их обработку.
NormalizeMinMaxService - отвечает за нормализацию данных для подачи на вход нейронной сети с использованием минимаксной функции.
NormalizeMxDxService - отвечает за нормализацию данных для подачи на вход нейронной сети с использованием математического ожидания и дисперсии.- содержит методы для запуска обучения, тестирования, инициализации нейронной сети. Также отвечает за формирование матрицы аппроксимации на основе обученной нейросети.
JavaServer Faces проект реализующий веб представление температурных данных.
С помощью возможностей Javascript библиотеки Leaflet отрисовывается карта. С помощью неё же организована возможность получения температурных данных в некоторой точке путём щелчка по карте. Происходит обращение к серверу, он по координатам вычисляет результат и возвращает его клиенту. Происходит отрисовка маркера с аппроксимированной температурой в этой точке.
Также с использованием JSF компонент, организована возможность поиска температуры в конкретном городе или по конкретным координатам. После введения данных и нажатия кнопки «Поиск» происходит обращение к серверу за температурой. Получив данные программа отрисовывает маркер используя Leaflet API.
4 ГРАФИЧЕСКИЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ
Для отображения температурных данных полученных путём аппроксимации
нейронной сетью было разработано веб-представление.

В возможности пользователя входит получение температуры путём:
нажатия мышкой на карте
указания интересующего города
указания интересующих координат
Данные пользователю отображаются с помощью маркера, отображающегося на карте в интересующей точке и содержащего в себе аппроксимированную текущую температуру в этой точке.
ЗАКЛЮЧЕНИЕ
В рамках выполнения дипломной работы были изучены основы аппроксимации функций, теория обосновывающая применение нейронных сетей к аппроксимации функций.
Также были изучены и применены такие технологии как формат представления данных JSON, библиотека для работы с этим форматом в Java, API погодного сервиса OpenWeatherMap. Для разработки программной системы был успешно применён объектно-ориентированный язык Java, изученный ранее. Также в ходе работы был получен опыт разработки веб приложений.
Была разработана нейронная сеть. В дипломной работе сеть применялась для аппроксимации температурных данных и показала достаточно неплохие результаты - ошибка всего около 1.4 градуса Цельсия.
Данные полученные на выходе нейронной сети отображаются пользователю с
помощью веб представления, позволяющего узнать температуру в любой интересующей
его точке.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Саймон Хайкин Нейронные сети: полный курс, 2-е издание. Пер. с англ. - М.: Издательский дом «Вильямс», 2006. - 1104 с.: ил.
2. Круглов В.В., Борисов В. В. Искусственные нейронные сети. Теория и практика. - 2-е изд., стереотип. - М.: Горячая линия - Телеком, 2002. - 382 с.: ил.
. Яхъяева Г.Э. Нечёткие множества и нейронные сети: Учебное пособие. М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2006. - 316с.: ил.
4. Эрмитова интерполяция [Электронный ресурс] / Статья - Электрон. дан. <http://dic.academic.ru/dic.nsf/ruwiki/1896283> - Режим доступа: свободный - Загл. с экрана - Яз. рус. (дата обращения 18.05.2014)
5. Хортсманн К.С., Корнелл Г. Библиотека профессионала. Java 2.
Том 1. Основы.: Пер. с англ. - М.: Издательский дом "Вильямc", 2003. - 848 с: ил.
6. Гери Д. М., Хортсманн К.С. JavaServer Faces. Библиотека профессионала, 3-е изд.: Пер. с англ. - М.: ООО «И,Д, Вильямс», 2011. - 544 c.: ил. - Парал. тит. англ.
7. OpenWeatherMap - как энтузиасты делают погоду [Электронный ресурс] / Статья - Электрон. дан. <http://habrahabr.ru/post/164045/> - Режим доступа: свободный - Загл. с экрана - Яз. рус. (дата обращения 15.02.2014)
. Т.В. Филатова Применение нейронных сетей для аппроксимации данных API [Электронный ресурс] / Статья - Электрон. Дан. <http://sun.tsu.ru/mminfo/000063105/284/image/284_121-125.pdf> - Режим доступа: свободный - Загл. с экрана - Яз. рус. (дата обращения 20.03.2014)
. OpenWeatherMap API [Электронный ресурс] / Статья - Электрон. дан. <http://openweathermap.org/API> - Режим доступа: свободный - Загл. с экрана - Яз. англ. (дата обращения 18.02.2014)
. JSON.simple example - Read and write JSON [Электронный ресурс] / Статья - Электрон. Дан. <http://www.mkyong.com/java/json-simple-example-read-and-write-json/> - Режим доступа: свободный - Загл. с экрана - Яз. англ. (дата обращения 02.03.2014)
. Leaflet Quick Start Guide [Электронный ресурс] / Статья - Электрон. дан. http://leafletjs.com/examples/quick-start.html#leaflet-quick-start-guide <http://leafletjs.com/examples/quick-start.html> - Режим доступа: свободный - Загл. с экрана - Яз. англ. (дата обращения 25.03.2014)