Skip to content

Google Summer of Code 2025

Qunshan edited this page Feb 15, 2025 · 2 revisions

Google Summer of Code 2025

PySAL is inviting students to join in PySAL's development by applying for Google Summer of Code 2025. This is the ninth year PySAL will be seeking to participate.

Introduction

PySAL is an open source library of spatial analysis functions written in Python intended to support the development of high level applications. See our documentation for more details. The developer guide describes in more details how to make contributions to PySAL and our work flow for contributing to the project. Our issues are also on github, which include bug reports and 'wishlist' items and enhancement plans and ideas.

If you are interested in participating in GSoC as a student, the best approach is to become an active and engaged contributor to the project right away. You should take a look at some of the existing issues on GitHub and see if there are any you think you might be able to take a crack at. Try submitting a pull request for something and start getting the hang of the process and interacting with the PySAL code base and development community. It is a good idea to start on your proposal early, post a draft to the pysal discord and iterate based on the feedback you receive. This will not only improve the quality of your proposal, but also help you find a suitable mentor.

Project Ideas

Below is a listing of possible projects that students might consider. We also encourage students to propose their own projects, though several of the following topics are relatively high on our priority list. Our priority list is flexible, and it is important that the topic matches the interest and background of the student.

When considering the following projects, don't be put off by the knowledge prerequisites -- you don't need to be an expert, and there is some scope for research and learning within the GSoC period. However, familiarity with and interest in the subject area and involved technologies will be helpful!

Street-Based Tessellation (momepy)

An urban space $S$ refers to a set of disjoint regions $R_i$ which are usually represented by a partition, e.g., census tract, hexagonal tessellation, grid-like partition. Therefore, a space can be defined as a union of region boundaries $S = {\partial R_1, \partial R_{2}, \ldots, \partial R_n}$ such that $\partial R_i \cap \partial R_j = \emptyset,; \forall i \ne j $.

In momepy, we have a definition of Morphological Tesselation (MT) and Enclosed Tessellation (ET) which are crucial for capturing urban morphology characteristics. MT is generated based on voronoi diagrams given building footprints, while ET is an enhanced version of MT that considers natural barriers such as street network, rivers and railways. However, street-based tessellation (ST) is a intuitive way to define a tessellation given natural barriers. ST is a tessellation version that inputs a street network and output city blocks containing geographic entities.

Objective

Enhance momepy adding support to Street-Based Tessellation (ST)

Related Reading

Difficulty

It is considered medium-level project. Note that it will depend on the familiarity with python packaging development.

Skills:

  • knowledge of python (required)
  • familiarity with python packaging - OOP, tests, docs - (preferred)
  • spatial data science (preferred)

Mentors

Project Size

Short (~175 hours)

Routing Engine (Spatial Optimization - spopt)

Spopt is one of the subpackages of PySAL which solves spatial optimization problems provinding regionalization, and facility-location models through region and locate modules, respectively. Spatial optimization is a wide research area which also covers routing problems such as vehicle routing. VRP problem aims at determine a set of vehicle routes to perform all (or some) transportation requests with the given set fleet at minimum cost. This problem has many variants and it is a widely research topic.

Objective

Develop route engine for spopt. Look at the draft PR.

Ideas

  • Feasibility Check of CVRP
  • Split Delivery VRP
  • Prize-Collecting VRP

Related Reading

  • Vehicle Routing Problems, Methods, and Applications - Daniele Vigo and Paulo Toth
  • PyVRP Resources (Docs, Paper)

Skills

  • interest in vehicle routing and spatial optimization
  • knowledge and experience with vehicle routing theories (preferred)
  • familiarity with python packaging - OOP, tests, docs - (preferred)
  • spatial data science (preferred)

Difficulty Level

It is considered hard-level project. This project combine python packaging, spatial optimization theories (operations research and linear algebra)

Mentors

Project Size

350 hours

Flow Refueling Location Models (Spatial Optimization - spopt)

Spopt is one of the subpackages of PySAL, which solves spatial optimization problems providing regionalization, and facility-location models through region and locate modules, respectively. Spatial optimization is a wide research area which not only covers facility location modeling, but also includes network coverage problems. Instead of locating central facilities to serve demand at fixed points in space in the traditional location-allocation problems, the flow-capturing location models (FCLM) designed by Hodgson (1990) aim to serve demand consisting of origin-destination flows along their shortest paths. The Flow Refueling Location models (FRLM) was extended from FCLM and was designed originally by Kuby & Lim (2005) to optimise the alternative fuel vehicles (i.e. EVs, hydrogen vehicles) refuelling problems.

Various extensions and better solution techniques of the models have been designed later on, including deviation FRLM, and the arc-cover-path-cover FRLM formulation. This problem has many variants, and it is a widely researched topic.

Objective

Develop FRLM and DFRLM for spopt.

Ideas

  • Develop FRLM based on the arc-cover-path-cover formulation
  • Develop DFRLM
  • Integrate the input and output for effective open science workflow for similar types of analysis

Related Reading

  • FCLM publication: Hodgson, M. J. (1990). A Flow-Capturing Location-Allocation Model. Geographical Analysis, 22(3), 270–279. https://doi.org/10.1111/j.1538-4632.1990.tb00210.x
  • Original FRLM publication: Kuby, M., & Lim, S. (2005). The flow-refueling location problem for alternative-fuel vehicles. Socio-Economic Planning Sciences, 39(2), 125–145. https://doi.org/10.1016/j.seps.2004.03.001
  • DFRLM publication: Kim, J.-G., & Kuby, M. (2012). The deviation-flow refueling location model for optimizing a network of refueling stations. International Journal of Hydrogen Energy, 37(6), 5406–5420. https://doi.org/10.1016/j.ijhydene.2011.08.108
  • Arc-cover-path-cover FRLM publication: Capar, I., Kuby, M., Leon, V. J., & Tsai, Y.-J. (2013). An arc cover–path-cover formulation and strategic analysis of alternative-fuel station locations. European Journal of Operational Research, 227(1), 142–151. https://doi.org/10.1016/j.ejor.2012.11.033

Skills

  • interest in transportation network location-allocation problems and spatial optimization
  • knowledge and experience with network location-allocation theories (preferred)
  • familiarity with python packaging - OOP, tests, docs - (preferred)
  • spatial data science (preferred)

Difficulty Level

It is considered medium-level project. This project combine python packaging, spatial optimization theories (operations research and linear algebra)

Mentors

Project Size

350 hours

Other

PySAL is an open source project and as such we invite contributions from any interested developer. If you have an idea for an enhancement for PySAL please contact one of the developers to discuss the possibilities for the project in GSOC25.

Clone this wiki locally