pysal / spaghetti

SPAtial GrapHs: nETworks, Topology, & Inference
http://pysal.org/spaghetti/
BSD 3-Clause "New" or "Revised" License
271 stars 70 forks source link

[JOSS review] Manuscript summary #574

Closed martibosch closed 3 years ago

martibosch commented 3 years ago

The "Summary" section of the manuscript is too short and does not provide enough information about the purpose of the library - other than telling the reader that it is a library about spatial networks. I would suggest extending the sentence "To this end, spaghetti (spatial graphs: networks, topology, & inference), a sub-module in the wider PySAL ecosystem (see Figure 1), was developed to address network-centric research questions with a strong focus on spatial analysis." with a very brief overview of the main functionalities of the library. I believe that by reading the summary, a potential user should be able to assess whether the tool is of its interest.

https://github.com/openjournals/joss-reviews/issues/2826

jGaboardi commented 3 years ago

We appreciate the suggestion that substantially improve the readability of our manuscript, and have made appropriate additions to the summary:

Through spaghetti, first, network objects can be created and analysed from collections of line data by various means including reading in a shapefile or passing in a geopandas.GeoDataFrame at which time the line data are assigned network topology. Second, spaghetti provides computational tools to support statistical analysis of so-called network-based events along many different types of previously loaded networks. Network based-events or near-network observations are events that happen along spatial networks in our daily lives, i.e. locations of trees along footpaths, biking accidents along roads or locations of coffee shops along streets. As with spaghetti.Network objects, spaghetti.PointPattern objects can be created from shapefiles, geopandas.GeoDataFrame objects or single libpysal.cg.Pointobjects. Near-network observations can then be snapped to nearest network segments enabling the calculation of observation distance matrices. Third, these observation distance matrices can be used both within spaghetti to perform clustering analysis or serve as input for other network-centric problems (e.g. optimal routing), or within the wider PySAL ecosystem to perform exploratory spatial analysis with esda. Finally, spaghetti’s network elements (vertices and arcs) can also be extracted as geopandas.GeoDataFrame objects for visualization and integrated into further spatial statistical analysis within PySAL (e.g. esda).

We have also included a statement of need connected to the Related Works (see also Issue #575):

While all the libraries above are important for network-based research, spaghetti was created and has evolved in line with the Python Spatial Analysis Library ecosystem for the specific purpose of utilizing the functionality of spatial weights in libpysal for generating network segment contiguity objects. The PySAL project was started in the mid-2000s when installation was difficult to maintain. Due to the non-triviality of relying on dependencies to secondary packages, a conscious decision was made to limit dependencies and build native PySAL data structures in cases where at all possible. Therefore, the original pysal.network submodule was developed to address the need for integrating support for network data structures with PySAL weights data structures, with the target audience being spatial data scientists and anyone interested in investigating network-centric phenomena within PySAL. Owing to the co-development of network functionality found within spaghetti and the evolution of the wider PySAL ecosystem, today, the package provides specialized network functionality that easily integrates with the rest of PySAL. This allows users of spaghetti’s network functionality to access spatial analysis functionality that complements network analysis, such as spatial statistical tools with esda and integration with core components of libpysal: libpysal.weights (mentioned above), libpysal.cg (computational geometry and data structures), libpysal.io (input-output), and libpysal.examples (built-in example data).