Closed ghost closed 2 years ago
Hola Elliot 🙋🏻♀️! Seguimos con más proyectos, y ahora es el turno del proyecto de las geoqueries!
Sin entregar, lo que implica que el proyecta se considera NO ENVIADO.
Se te han colado unos cuantos archivos temporales fuera del gitignore. Recuerda, este tipo de archivos que no aportan valor al proyecto no los debemos incluir en el repo y deben estar en el .gitignore
.
¿Qué ficheros te has dejado fuera?
Principalmente el .DS_Store
que se crea automáticamente al abrir el Finder en MacOS. Los tienes en:
ciudades
y empresas
🔴 Si tienes cualquier duda de como hacerlo dime y lo vemos juntos.
Tienes dos carpetas con los datos separados para ciudades y las empresas lo cual esta perfect. Solo como detalle, si lo metieras en una única carpeta que se llamara por ejemplo data
quedaría TOP.
Al final lo ideal es tener en repo carpetas que almacenen archivos similares. Por ejemplo:
data
donde tengamos todos los csvNotebooks
donde estén todos los jupyterssrc
donde tengamos todos los .py
con las funciones que usaremos durante el proyecto. Si además, en la carpeta de jupyters, numeras los jupyters para saber el orden de trabajo ya sería peeeerfecto.
Por otro lado no veo el .gitignore
por ninguna parte. Este fichero debe incluirse en el repo ya que no solo nos va a permitir "esconder" los ficheros que no queramos si no que además es donde debe ir el .env
que contiene los tokens de las apis.
Tienes un archivo que se llama src
, pero que en realidad no tiene extensión.
🚨 ESTO DEBERÍA SER UNA CARPETA Y DENTRO DE LA CARPETA DEBERÍAMOS TENER LOS TENER LOS ARCHIVOS
.PY
QUE CONTENGAN NUESTRAS FUNCIONES DOCUMENTADAS. 🚨
Vamos con la parte de código:
En la función de geocode
que te ayuda a sacar las coordenadas de una localización:
def geocode(park):
data = requests.get(f"https://geocode.xyz/{park}?json=1").json()
try:
return {"type": "Point", "coordinates": [data["latt"], data["longt"]]}
except:
return data
Genial que usaras la función que os había dado Ras en clase, pero en este caso es importante que entendamos lo que hace esta función. Esta función no nos va a permitir sacar solo las coordenadas de un parque sino de cualquier ubicación que le demos.
Otro punto importante son los docstrings en las funciones. Esto va a permitir que la gente que lea tu código entienda que hace la función y que parámetros recibe.
¿Qué es lo que tiene que tener un docstring?
Aquí algo de info sobre los docstrings .
def mifuncion(argumento1, argumento2):
'''
Lo que hace la función
args:
argumento1: tipo de dato
argumento2: tipo de dato
return:
que nos devuelve la función
'''
return "Hola"
En la parte donde haces la llamada a la api, sacas los datos que te interesan y lo limpias. Esta perfecto Elliot 👏🏽. Solo como detalle, cuando nos encontramos con estructuras de código que repetimos muchas veces es una señal de que debemos atomizar ese código usando por ejemplo un for loop.
Te dejo por aquí un poco de pseudo-código de como lo podrías hacer por si te aporta valor:
# nos podemos crear una lista con los criterios que queremos buscar en la api de foursquare
requisitos = ["preschool", "bar", "starbucks", "groomer", "basketball court"]
all_data = []
for i in requisitos:
vancouver_data = extraetodo(coordenadas(url, '49.29679, -123.13617',f'{i}', client_id, client_secret)).assign(Requisito= f'{i}')
all_data.append(vancouver_data)
# aqui tendremos una lista de listas que luego podremos convertir en dataframe.
Bueno Elliot, hasta aquí puedo leer. Has dejado el proyecto a medias, sin hacer la parte de las geoqueries, por otra lado, parte esencial del proyecto 😖.
Docstrings en las funciones.
Atomizar un poco el código para evitar lineas de código que esten muy repetidas.
Organización del repo, tener la carpeta de src, data y notebooks.
Te ha quedado toda la parte de las queries de este proyecto sin hacer. ¿Qué ha pasado?
Elliot, no te puedo dar mucho más feedback porque tu proyecto esta bastante incompleto. Es el segundo proyecto que entregas incompleto. Recuerda que es requisito indispensable tener todos los proyectos entregados o al menos con algo que pueda ser evaluado.
https://github.com/elliotesp/geospatial-queries-project.git