Connecting points in a specific order












1














The full code (excluding the path finding algorithm) I am about to describe can be found on Code Review.



I am reading in 10 co-ordinates from a text file in Python. I then proceed to pass the latitude and longitude co-ordinates to a function which prints the points as follows.



def read_two_column_file(file_name):
with open(file_name, 'r') as f_input:
csv_input = csv.reader(f_input, delimiter=' ', skipinitialspace=True, )
long =
lat =
for col in csv_input:
x = float(col[0]) # converting to float
y = float(col[1])
long.append(x)
lat.append(y)

return long, lat


def display_points(long, lat):
plt.figure()
plt.gca().set_aspect('equal', adjustable='box')
plt.ylabel('latitude')
plt.xlabel('longitude')
plt.title('longitude vs latitude')
plt.scatter(lat, long)
plt.orientation = u'vertical'
plt.grid('True')
plt.show()


Sample Input:



35.905333, 14.471970
35.896389, 14.477780
35.901281, 14.518173
35.860491, 14.572245
35.807607, 14.535320
35.832267, 14.455894
35.882414, 14.373217
35.983794, 14.336096
35.974463, 14.351006
35.930951, 14.401137


Plot:



enter image description here



This plots points on a map, and the idea is to find the shortest possible route from a starting point to an end point. Forgetting about the algorithm which does so, let us say I get an output representing the route as:



[2, 1, 0, 9, 8, 7, 6, 5, 4, 3, 2]


How can I translate these nodes back to the co-ordinates they are representing in order to connect them on Matplotlib?










share|improve this question





























    1














    The full code (excluding the path finding algorithm) I am about to describe can be found on Code Review.



    I am reading in 10 co-ordinates from a text file in Python. I then proceed to pass the latitude and longitude co-ordinates to a function which prints the points as follows.



    def read_two_column_file(file_name):
    with open(file_name, 'r') as f_input:
    csv_input = csv.reader(f_input, delimiter=' ', skipinitialspace=True, )
    long =
    lat =
    for col in csv_input:
    x = float(col[0]) # converting to float
    y = float(col[1])
    long.append(x)
    lat.append(y)

    return long, lat


    def display_points(long, lat):
    plt.figure()
    plt.gca().set_aspect('equal', adjustable='box')
    plt.ylabel('latitude')
    plt.xlabel('longitude')
    plt.title('longitude vs latitude')
    plt.scatter(lat, long)
    plt.orientation = u'vertical'
    plt.grid('True')
    plt.show()


    Sample Input:



    35.905333, 14.471970
    35.896389, 14.477780
    35.901281, 14.518173
    35.860491, 14.572245
    35.807607, 14.535320
    35.832267, 14.455894
    35.882414, 14.373217
    35.983794, 14.336096
    35.974463, 14.351006
    35.930951, 14.401137


    Plot:



    enter image description here



    This plots points on a map, and the idea is to find the shortest possible route from a starting point to an end point. Forgetting about the algorithm which does so, let us say I get an output representing the route as:



    [2, 1, 0, 9, 8, 7, 6, 5, 4, 3, 2]


    How can I translate these nodes back to the co-ordinates they are representing in order to connect them on Matplotlib?










    share|improve this question



























      1












      1








      1







      The full code (excluding the path finding algorithm) I am about to describe can be found on Code Review.



      I am reading in 10 co-ordinates from a text file in Python. I then proceed to pass the latitude and longitude co-ordinates to a function which prints the points as follows.



      def read_two_column_file(file_name):
      with open(file_name, 'r') as f_input:
      csv_input = csv.reader(f_input, delimiter=' ', skipinitialspace=True, )
      long =
      lat =
      for col in csv_input:
      x = float(col[0]) # converting to float
      y = float(col[1])
      long.append(x)
      lat.append(y)

      return long, lat


      def display_points(long, lat):
      plt.figure()
      plt.gca().set_aspect('equal', adjustable='box')
      plt.ylabel('latitude')
      plt.xlabel('longitude')
      plt.title('longitude vs latitude')
      plt.scatter(lat, long)
      plt.orientation = u'vertical'
      plt.grid('True')
      plt.show()


      Sample Input:



      35.905333, 14.471970
      35.896389, 14.477780
      35.901281, 14.518173
      35.860491, 14.572245
      35.807607, 14.535320
      35.832267, 14.455894
      35.882414, 14.373217
      35.983794, 14.336096
      35.974463, 14.351006
      35.930951, 14.401137


      Plot:



      enter image description here



      This plots points on a map, and the idea is to find the shortest possible route from a starting point to an end point. Forgetting about the algorithm which does so, let us say I get an output representing the route as:



      [2, 1, 0, 9, 8, 7, 6, 5, 4, 3, 2]


      How can I translate these nodes back to the co-ordinates they are representing in order to connect them on Matplotlib?










      share|improve this question















      The full code (excluding the path finding algorithm) I am about to describe can be found on Code Review.



      I am reading in 10 co-ordinates from a text file in Python. I then proceed to pass the latitude and longitude co-ordinates to a function which prints the points as follows.



      def read_two_column_file(file_name):
      with open(file_name, 'r') as f_input:
      csv_input = csv.reader(f_input, delimiter=' ', skipinitialspace=True, )
      long =
      lat =
      for col in csv_input:
      x = float(col[0]) # converting to float
      y = float(col[1])
      long.append(x)
      lat.append(y)

      return long, lat


      def display_points(long, lat):
      plt.figure()
      plt.gca().set_aspect('equal', adjustable='box')
      plt.ylabel('latitude')
      plt.xlabel('longitude')
      plt.title('longitude vs latitude')
      plt.scatter(lat, long)
      plt.orientation = u'vertical'
      plt.grid('True')
      plt.show()


      Sample Input:



      35.905333, 14.471970
      35.896389, 14.477780
      35.901281, 14.518173
      35.860491, 14.572245
      35.807607, 14.535320
      35.832267, 14.455894
      35.882414, 14.373217
      35.983794, 14.336096
      35.974463, 14.351006
      35.930951, 14.401137


      Plot:



      enter image description here



      This plots points on a map, and the idea is to find the shortest possible route from a starting point to an end point. Forgetting about the algorithm which does so, let us say I get an output representing the route as:



      [2, 1, 0, 9, 8, 7, 6, 5, 4, 3, 2]


      How can I translate these nodes back to the co-ordinates they are representing in order to connect them on Matplotlib?







      python python-3.x matplotlib






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 13 '18 at 9:50







      Rrz0

















      asked Nov 13 '18 at 9:35









      Rrz0Rrz0

      485518




      485518
























          1 Answer
          1






          active

          oldest

          votes


















          3














          Transform your latitude and longitude into numpy arrays:



          long = np.array(long)
          lat = np.array(lat)


          I would advise to do it in read_two_column_file directly.



          Then if the path is in the variable path, you can do directly:



          plt.plot(long[path], lat[path])





          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53277905%2fconnecting-points-in-a-specific-order%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            3














            Transform your latitude and longitude into numpy arrays:



            long = np.array(long)
            lat = np.array(lat)


            I would advise to do it in read_two_column_file directly.



            Then if the path is in the variable path, you can do directly:



            plt.plot(long[path], lat[path])





            share|improve this answer


























              3














              Transform your latitude and longitude into numpy arrays:



              long = np.array(long)
              lat = np.array(lat)


              I would advise to do it in read_two_column_file directly.



              Then if the path is in the variable path, you can do directly:



              plt.plot(long[path], lat[path])





              share|improve this answer
























                3












                3








                3






                Transform your latitude and longitude into numpy arrays:



                long = np.array(long)
                lat = np.array(lat)


                I would advise to do it in read_two_column_file directly.



                Then if the path is in the variable path, you can do directly:



                plt.plot(long[path], lat[path])





                share|improve this answer












                Transform your latitude and longitude into numpy arrays:



                long = np.array(long)
                lat = np.array(lat)


                I would advise to do it in read_two_column_file directly.



                Then if the path is in the variable path, you can do directly:



                plt.plot(long[path], lat[path])






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 13 '18 at 9:39









                Matthieu BrucherMatthieu Brucher

                13k22140




                13k22140






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.





                    Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


                    Please pay close attention to the following guidance:


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53277905%2fconnecting-points-in-a-specific-order%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    List item for chat from Array inside array React Native

                    Thiostrepton

                    Caerphilly