
Code of kmeans model for virms fire data!
Given a latitude and a longitude, it returns a map of fire spot clusters along the area.
Useful to determine the areas in which there are ongoing fire-related developments.
https://github.com/jmaidana18/spaceapp
| importpandasaspd | |
| fromsklearn.model_selectionimporttrain_test_split | |
| fromsklearn.clusterimportKMeans | |
| importnumpyasnp | |
| importmatplotlib.pyplotasplt | |
| # Lectura del dataset en crudo | |
| data=pd.read_csv("fire_archive_V1_81287.csv") | |
| # Es posible hacer analisis exploratorio en este punto. | |
| # Data Wrangling. | |
| # Discrimina focos de fuego por parametro de Confianza, alta y nominal. | |
| is_high=data['confidence'] =='h' | |
| data_high=data[is_high] | |
| is_nom=data['confidence'] =='n' | |
| data_nom=data[is_nom] | |
| data_proc= [data_high, data_nom] | |
| result=pd.concat(data_proc) | |
| # Visualización de Datos Crudos: Focos por Confidencia. | |
| N=len(result) | |
| colors=np.random.rand(N) | |
| area= (30*np.random.rand(N))**2 | |
| # plt.scatter(data_proc['latitude'], data_proc['longitude'],s=area, c=colors, alpha=0.5) | |
| plt.scatter(result['longitude'],result['latitude']) | |
| plt.title('Paraguay, Focos de Calor, Satelite VIRS') | |
| plt.xlabel('Longitud') | |
| plt.ylabel('Latitud') | |
| plt.show() | |
| plt.savefig('focos_map.png') | |
| # Visualizar datos con focos procesados. | |
| # Division de Dataset en partes. | |
| latTrain, latTest, longTrain, longTest=train_test_split(result['latitude'], result['longitude'], test_size=0.30, random_state=0) | |
| # 30% del dataset es usado para el entrenamiento. | |
| # Entrenamiento de machine learning | |
| train_x=np.zeros((len(latTrain), 2)) | |
| train_x[:,0] =latTrain | |
| train_x[:,1] =longTrain | |
| kmeans=KMeans(n_clusters=100, random_state=0).fit(train_x) | |
| # Prediccion de Zonas de R | |
| y_kmeans=kmeans.predict(train_x) | |
| # Tests de Rendimiento del Algoritmo. | |
| plt.title('Paraguay, Focos de Calor, Satelite VIRS') | |
| plt.xlabel('Longitud') | |
| plt.ylabel('Latitud') | |
| plt.scatter(train_x[:, 1],train_x[:, 0], c=y_kmeans, s=50, cmap='viridis') | |
| plt.savefig('heat_map.png') | |
| plt.title('Paraguay, Focos de Calor, Satelite VIRS') | |
| plt.xlabel('Longitud') | |
| plt.ylabel('Latitud') | |
| plt.scatter(train_x[:, 1], train_x[:, 0], c=y_kmeans, s=50, cmap='viridis') | |
| centers=kmeans.cluster_centers_ | |
| plt.scatter(centers[:, 1], centers[:, 0], c='black', s=200, alpha=0.5); | |
| plt.savefig('heat_map_clusters.png') |


Is hot out there!