ShrishtiAI-backend / create_excel_goa.py
tanmaydesai07's picture
fixed weatherwise
163f456
Raw
History Blame Contribute Delete
3.99 kB
"""
Shrishti AI API Test - Create Excel File (Goa)
Creates an Excel file with Goa-only locations for testing predictions.
"""
import pandas as pd
EXCEL_FILE_GOA = "backend/data/prediction_results_goa.xlsx"
# Goa-only locations for testing
GOA_LOCATIONS = [
{"name": "Panaji, Goa", "lat": 15.4909, "lon": 73.8278},
{"name": "Margao, Goa", "lat": 15.2993, "lon": 73.9581},
{"name": "Vasco da Gama, Goa", "lat": 15.3860, "lon": 73.8448},
{"name": "Mapusa, Goa", "lat": 15.5937, "lon": 73.8130},
{"name": "Ponda, Goa", "lat": 15.4030, "lon": 74.0156},
{"name": "Calangute, Goa", "lat": 15.5439, "lon": 73.7553},
{"name": "Candolim, Goa", "lat": 15.5185, "lon": 73.7622},
{"name": "Baga, Goa", "lat": 15.5560, "lon": 73.7517},
{"name": "Anjuna, Goa", "lat": 15.5752, "lon": 73.7390},
{"name": "Colva, Goa", "lat": 15.2797, "lon": 73.9228},
{"name": "Dona Paula, Goa", "lat": 15.4619, "lon": 73.8032},
{"name": "Old Goa, Goa", "lat": 15.5009, "lon": 73.9119},
{"name": "Pernem, Goa", "lat": 15.7230, "lon": 73.7950},
{"name": "Arambol, Goa", "lat": 15.6868, "lon": 73.7037},
{"name": "Bicholim, Goa", "lat": 15.5883, "lon": 73.9457},
{"name": "Sanquelim, Goa", "lat": 15.5642, "lon": 74.0078},
{"name": "Quepem, Goa", "lat": 15.2128, "lon": 74.0772},
{"name": "Canacona, Goa", "lat": 15.0100, "lon": 74.0243},
{"name": "Palolem, Goa", "lat": 15.0094, "lon": 74.0236},
{"name": "Sanguem, Goa", "lat": 15.2290, "lon": 74.1510},
{"name": "Curchorem, Goa", "lat": 15.2635, "lon": 74.1087},
{"name": "Valpoi, Goa", "lat": 15.5323, "lon": 74.1356},
{"name": "Morjim, Goa", "lat": 15.6302, "lon": 73.7396},
]
def create_excel_goa():
"""Create an Excel file with Goa-only locations."""
data = []
for loc in GOA_LOCATIONS:
data.append(
{
"Location Name": loc["name"],
"Latitude": loc["lat"],
"Longitude": loc["lon"],
# HazardGuard columns
"HazardGuard Prediction": "",
"HazardGuard Main Model Confidence": "",
"HazardGuard Disaster Types": "",
# WeatherWise columns (60 days forecast as lists)
"WeatherWise Temperature (°C) [60 days]": "",
"WeatherWise Humidity (%) [60 days]": "",
"WeatherWise Precipitation (mm) [60 days]": "",
# GeoVision columns
"GeoVision Disaster Type": "",
"GeoVision Weather Type": "",
"GeoVision Confidence": "",
# Metadata
"Prediction Timestamp": "",
}
)
df = pd.DataFrame(data)
with pd.ExcelWriter(EXCEL_FILE_GOA, engine="openpyxl") as writer:
df.to_excel(writer, sheet_name="Predictions", index=False)
worksheet = writer.sheets["Predictions"]
column_widths = {
"A": 30, # Location Name
"B": 12, # Latitude
"C": 12, # Longitude
"D": 22, # HazardGuard Prediction
"E": 35, # HazardGuard Main Model Confidence
"F": 28, # HazardGuard Disaster Types
"G": 50, # WeatherWise Temperature [60 days]
"H": 50, # WeatherWise Humidity [60 days]
"I": 50, # WeatherWise Precipitation [60 days]
"J": 24, # GeoVision Disaster Type
"K": 22, # GeoVision Weather Type
"L": 20, # GeoVision Confidence
"M": 22, # Prediction Timestamp
}
for col, width in column_widths.items():
worksheet.column_dimensions[col].width = width
print(f"Excel file created: {EXCEL_FILE_GOA}")
print(f"Total locations: {len(GOA_LOCATIONS)}")
print("\nLocations added:")
for i, loc in enumerate(GOA_LOCATIONS, 1):
print(f" {i}. {loc['name']} ({loc['lat']}, {loc['lon']})")
return df
if __name__ == "__main__":
create_excel_goa()