An open API service indexing awesome lists of open source software.

https://github.com/anas436/weather-station-clustering-using-dbscan-and-scikit-learn-with-python


https://github.com/anas436/weather-station-clustering-using-dbscan-and-scikit-learn-with-python

basemap cluster csv dbscan density-based-clustering jupyterlab matplotlib numpy pandas pylab python3 rcparams scikit-learn sklearn warnings

Last synced: 2 months ago
JSON representation

Awesome Lists containing this project

README

          

# Weather-Station-Clustering-using-DBSCAN-and-Scikit-learn-with-Python

## Objectives

After completing this lab you will be able to:

* Use DBSCAN to do Density based clustering
* Use Matplotlib to plot clusters

Most of the traditional clustering techniques, such as k-means, hierarchical and fuzzy clustering, can be used to group data without supervision.

However, when applied to tasks with arbitrary shape clusters, or clusters within a cluster, the traditional techniques might be unable to achieve good results. That is, elements in the same cluster might not share enough similarity or the performance may be poor.
Additionally, Density-based clustering locates regions of high density that are separated from one another by regions of low density. Density, in this context, is defined as the number of points within a specified radius.

In this section, the main focus will be manipulating the data and properties of DBSCAN and observing the resulting clustering.

Weather Station Clustering using DBSCAN & scikit-learn



DBSCAN is especially very good for tasks like class identification in a spatial context. The wonderful attribute of DBSCAN algorithm is that it can find out any arbitrary shape cluster without getting affected by noise. For example, this following example cluster the location of weather stations in Canada.
\
DBSCAN can be used here, for instance, to find the group of stations which show the same weather condition. As you can see, it not only finds different arbitrary shaped clusters, can find the denser part of data-centered samples by ignoring less-dense areas or noises.

Let's start playing with the data. We will be working according to the following workflow:

1. Loading data

* Overview data
* Data cleaning
* Data selection
* Clusteing


Name in the table
Meaning


Stn_Name
Station Name


Lat
Latitude (North+, degrees)


Long
Longitude (West - , degrees)


Prov
Province


Tm
Mean Temperature (°C)


DwTm
Days without Valid Mean Temperature


D
Mean Temperature difference from Normal (1981-2010) (°C)


Tx
Highest Monthly Maximum Temperature (°C)


DwTx
Days without Valid Maximum Temperature


Tn
Lowest Monthly Minimum Temperature (°C)


DwTn
Days without Valid Minimum Temperature


S
Snowfall (cm)


DwS
Days without Valid Snowfall


S%N
Percent of Normal (1981-2010) Snowfall


P
Total Precipitation (mm)


DwP
Days without Valid Precipitation


P%N
Percent of Normal (1981-2010) Precipitation


S_G
Snow on the ground at the end of the month (cm)


Pd
Number of days with Precipitation 1.0 mm or more


BS
Bright Sunshine (hours)


DwBS
Days without Valid Bright Sunshine


BS%
Percent of Normal (1981-2010) Bright Sunshine


HDD
Degree Days below 18 °C


CDD
Degree Days above 18 °C


Stn_No
Climate station identifier (first 3 digits indicate drainage basin, last 4 characters are for sorting alphabetically).


NA
Not Available