[Qgis-user] help with shortest-path/network analysis (multiple origins to multiple destinations)
Nicolas Cadieux
njacadieux.gitlab at gmail.com
Fri May 6 12:34:56 PDT 2022
Hi,
I think the best way is too install Python with Anaconda. Then, you
will need to install geopandas, networkX and possibly pandas and
shapely libraries. I am not sure it it's a good idea to add these in
the Qgis Python distribution.
My algorithm currently uses 1 line input file and 1 point input file. It
would need to be modified to work with 2 point input files.
Nicolas
On 2022-05-06 10:02 a.m., Francesca Parente wrote:
> Thank you very much indeed Nicolas, for your inputs and all the
> suggested materials!
> I have 50 targets and 532 origins. My goal is to define where is best
> to go within the 50 destinations for each starting point - given the
> actual range of choices though, so I'm not sure that running a batch
> one-to-many would take into account all the variables properly as a
> many-to-many would do. In the absence of a specific modelling, also
> some second best could work.
>
> I understand that your upstream-downstream-Dijkstra script is suitable
> for layer-to-layer indeed and I'm trying to run it, but at the >>>
> import geopandas as gpd<< line I got the following error message:
>
> /Traceback (most recent call last):
> File "C:\OSGEO4~1\apps\Python37\lib\code.py", line 90, in runcode
> exec(code, self.locals)
> File "<input>", line 1, in <module>
> File "C:/OSGEO4~1/apps/qgis/./python\qgis\utils.py", line 799, in
> _import
> mod = _builtin_import(name, globals, locals, fromlist, level)
> /
> /ModuleNotFoundError: No module named 'geopandas'/
> I've been following your tutorial, but I admit I'm not quite familiar
> with py. I've gone through the remaining import coding and it seems
> working, but I'm not sure the "geopandas" module is needed or not to
> properly complete the script.
>
> Thanks again!!
> Best,
> Francesca
>
> Il giorno gio 5 mag 2022 alle ore 22:28 Nicolas Cadieux
> <njacadieux.gitlab at gmail.com> ha scritto:
>
> Hi,
>
> How many shortest path calculations are you looking at? You could
> probably do a all pairs shortest path dijkstra and filter the
> results. You could batch multiple one to many (point to layers)
> In QGIS using the processing plug-in.
>
> I did create an algorithm using networkX that could be modified to
> work with two input layers. This could be useful if QGIS is not
> fast enough or if you have too many routes to calculate. You will
> find it in the links below. Keep in mind this algorithm was for
> rivers therefore you have no trafic rules. This would need more work.
>
> You will also find an article we wrote in Data that may help. If
> you have trouble with the network, look in the QGIS hub for the
> models. Look for the 3 “fix directional networks models”.
>
> I added a few YouTube videos I made.
>
> https://gitlab.com/njacadieux/upstream_downstream_shortests_path_dijkstra<https://www.mdpi.com/2306-5729/5/1/8>
>
> https://www.mdpi.com/2306-5729/5/1/8
>
> https://plugins.qgis.org/models/
>
> https://youtu.be/v61PafSByvM
>
> https://youtu.be/qQrHcKtmr3o
>
>
> Nicolas Cadieux
> https://gitlab.com/njacadieux
>
>> Le 5 mai 2022 à 10:38, Francesca Parente via Qgis-user
>> <qgis-user at lists.osgeo.org> a écrit :
>>
>>
>> Hello everyone,
>>
>> I'd need to identify optimal destinations (within a point layer
>> of geolocated facilities) for each territory of a given set of
>> possible origins.
>> I already calculated a distance matrix between the two
>> point-layers, and also applied the distance-to-nearest-hub tool
>> to generate a string layer and identify the optimal facilities.
>> But I'd like to obtain a more realistic estimate, accounting for
>> the roads network (and ideally their travel times). With quite a
>> few issues, I finally managed to import an OSM road network from
>> download.geofabrik.de <http://download.geofabrik.de> (in order to
>> cover my area of interest, I had to merge two different vectors
>> fo Center and Southern Italy and then extract a focus spot in
>> between the two and save it as a lighter layer, otherwise it also
>> took an eternity to run every analysis).
>>
>> So now my question would be: is there a tool to perform a
>> layer-to-layer shortest-path analysis that takes it into account?
>> All that I could find was either point-to-point or
>> layer-to-point/point-to-layer (I looked also at built-in network
>> analysis tool and Qneat3 plugin).
>>
>> Any kind of inputs and suggestions will be more than welcome!
>> Thanks a lot for your support and have a good day,
>> Francesca
>>
>> --
>> ----------------------------
>> Francesca Parente
>>
>> _ SESS Euro PhD
>> <https://phd.uniroma1.it/web/FRANCESCA-PARENTE_nT1602922_IT.aspx>
>> in SocioEconomic and Statistical Studies
>> _ Luiss SEP <https://sep.luiss.it/> School of European Political
>> Economy
>>
>>
>> email: francescaparente.rse at gmail.com
>> parentef at luiss.it
>>
>> _______________________________________________
>> Qgis-user mailing list
>> Qgis-user at lists.osgeo.org
>> List info: https://lists.osgeo.org/mailman/listinfo/qgis-user
>> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-user
>
>
>
> --
> ----------------------------
> Francesca Parente
>
> _ SESS Euro PhD
> <https://phd.uniroma1.it/web/FRANCESCA-PARENTE_nT1602922_IT.aspx> in
> SocioEconomic and Statistical Studies
> _ Luiss SEP <https://sep.luiss.it/> School of European Political Economy
>
> email: francescaparente.rse at gmail.com
> parentef at luiss.it
>
--
Nicolas Cadieux
https://gitlab.com/njacadieux
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-user/attachments/20220506/8b96580a/attachment.htm>
More information about the Qgis-user
mailing list