Open AtharvaBeesen opened 1 month ago
Looked for ways to update our PEI statistic and tested a few different statistical approaches to improving the output values to be easier to comprehend (e.g. rank-based transformation and sigmoid transformation). Also created notes for ways to make the statistic more useful/valid/realistic (i.e., so that the statistic is not just relative to the city it is in, but to the whole country).
Need to work with Albert to identify more parameters and subindices in order to further develop the code — idea generation is going well; we just need to finalize the exact subindices and APIs to use before integrating into the code.
Narrowing down which techniques to use when updating the statistic. Addressed this by performing tests for each one and seeing which methods worked best with our data — I settled on using either rank transformation or sigmoid transformation.
A few cool statistics concepts! (different ways to normalize data).
No team meetings, but the team met after the Monday 11am group meet, and we divided up tasks. We split into essentially 2 groups, with me and Albert working on developing the statistic and a web app, and the rest of the team working to research parameters and develop methods for statistic calculation.
Wrote a few PowerPoint slides to outline my research on a few statistical methods and ways we could potentially improve the validity/usefulness of our statistic. My progress this week was still predominantly research:
N/A
Designed the UI in Figma and wrote code (JavaScript, HTML, CSS) for key components required for the frontend. I also designed logic for how to create API requests to our backend Python code for parameter creation (the algorithms for the parameters have remained unchanged from the previous semester).
Need to work with Albert to actually start bringing multiple components of the web app together. Also need to work with Chunlan to improve the visual appeal of our frontend - as it is bare bones right now.
Writing pseudocode to incorporate a Leaflet map into our web app - this has been an issue I have faced in the past and so I attempted to reuse old functioning code.
Re-learning how to build RESTful APIs.
The team met after the Monday 11am group meeting, and we divided up tasks. We refined the immediate tasks that the 2 groups we created from last week should focus on. Albert and I are primarily focused on fleshing out a functioning MVP web app, and Yunlan will focus on UI development.
N/A
Fully built out a web app using React (JavaScript, HTML, CSS). The web app is still currently static - I just ran a PDI algorithm externally and saved the GeoJSON output into the React app as a standalone file to use when generating the interactive map on the app.
Working with Albert to build out the API. Due to multiple moving parts, this will require another week or two to build out the logic and clean up the code written last semester.
Building the web app was relatively difficult and we realized it would not be feasible to incorporate an API call as part of the web app. We addressed this challenge by initially just creating a static web app and looking to develop a fleshed out API in the next 2 weeks.
Re-learning how to build React Web Apps. Also improved in my knowledge of creating RESTful APIs, and I believe that I outlined a good plan in a meeting with Albert for how we should build our custom API.
Met with Albert on Sunday to fix bugs as part of the MVP web app and split up tasks for our API development.
N/A
Managed to finally get an API query to return usable data on 2013 data (this was the furthest back I could get). The Overpass API function managed to work for the IDI subindex by counting street "nodes" as intersections.
In the current OSM data, intersections are more clearly marked, whereas for the 2013 data I had to search for key fields such as street crossing nodes, highway intersection nodes etc.
Trying to create datasets for the remaining subindexes for data between 2013 and 2022. Need to figure out how to use the Overpass API with our different subindexes.
Getting the Overpass API to run was extremely difficult. To address this I essentially had to use trial and error - once I finally found a working methodology, I wrote this down as documentation for the next time I may need to use the API.
Re-learning Python Flask and its API-based functions.
Met with the team to see how they felt about static data, and how Chunlan may want us to format the data so it better aligns with her UI/UX ideas.
N/A
Added button to web app that allows users to download the raw csv or geojson data that they are looking at! Also completed a few more of the subindices for 2013 and 2022.
Finalizing datasets for the different subindices. Almost finished! Done with 3/4 of the subindeces now between 2013 and 2022.
Getting the Overpass API calling structure to work. Was also encountering lots of issues regarding projecting historical data onto the map as Overpass used a different coordinate structure in 2013. I was able to figure out which system they used via an old reddit post and projected the coordinates accordingly.
React and Javascript when updating the web app.
Met with Albert on Sunday to figure out how to implement out LDI and potentiall how to optimize it - as it would often take >30 minutes to run.
N/A
Finalized a method and wrote documentation to pull data from Overpass API! So we should be set to try and automate data collection and hence automate subindex generation.
Working with Albert to actually write code that will allow us to develop a nation wide dataset for Dr Ku.
Trying to figure out how to optimize our algorithms before we run them on huge datasets. It was also tricky to try and gather data for census tracts (as we usually use census block groups).
Custom API building and testing within Python.
Met with Dr Ku on Monday to discuss his goals and what he wants from us. We learnt that he was less interested in the Web App and more interested in a nation wide dataset of our parameters.
N/A
Weekly Notebook Entry — Week 1
Quick Overview
List your top 3 tasks or objectives for this week:
Task 1: Reading up on GeoPandas to help with writing code. Task 2: Working with Albert to identify potential new parameters and subindices. Task 3: Writing up a first draft of code to incorporate these parameters.
Weekly Accomplishments
What tasks did you complete this week?
Looked over the codebase and familiarized myself with all the libraries and techniques used in developing the output from last semester. Also compiled a word document with detailed notes on the codebase if I need to understand something in the future.
Tasks are still ongoing? Current status?
Need to work with Albert to identify some more parameters and subindices in order to further develop the code.
Challenges and Learning
What was the biggest challenge you faced this week? How did you address it?
Attempting to understand new Python libraries and analysis techniques that I had not seen before (particularly working with geographic data). I addressed this challenge through watching YouTube tutorials and reading documentation on the libraries' official websites.
What's one new thing you learned or skill you improved?
Working with GeoJSON files!
Did you attend any team meetings? Key takeaways?
Attended a virtual Teams meeting with my team where we laid out a rough plan and assigned tasks for each of the team members - my goal was to familiarize myself with the codebase.
Reflection and Planning
Your progress this week?
(from Weekly Accomplishments) Looked over the codebase and familiarized myself with all the libraries and techniques used in developing the output from last semester. Also compiled a word document with detailed notes on the codebase if I need to understand something in the future. Will also be sending my Word document and a PowerPoint with more details about my work this week to our Teams groupchat.
Main focus for next week?
Making a plan regarding parameters and subindices to look back at when it's time to write some code! Also to watch a few more tutorials on GeoPandas.
Any resources you're looking for?
N/A