[GRASS-user] traveling salesman problem in air
Dear GRASS experts! I encountered an interesting problem and am curious about solutions. A helicopter company has got a file from a client regarding a forest inventory. The file contains 1430 polygons representing areas to be visited. Now we want to calculate the optimal route to visit all polygons. In contrast to a traveling salesman , we don't have a network of routes as the helicopter can fly everywhere. Would it be a solution to have the distance betweeen areas as the cost? I used a tool in MapInfo that connects successive closest points which worked very nice but not optimal. Anyone knows of other solutions? Regards, Martina ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] traveling salesman problem in air
On 15/04/09 09:19, Wolf Bergenheim wrote: On 15.04.2009 10:05, Moritz Lennert wrote: On 15/04/09 08:55, Martina Schäfer wrote: Dear GRASS experts! I encountered an interesting problem and am curious about solutions. A helicopter company has got a file from a client regarding a forest inventory. The file contains 1430 polygons representing areas to be visited. Now we want to calculate the optimal route to visit all polygons. In contrast to a traveling salesman , we don't have a network of routes as the helicopter can fly everywhere. Would it be a solution to have the distance betweeen areas as the cost? I used a tool in MapInfo that connects successive closest points which worked very nice but not optimal. Anyone knows of other solutions? Maybe v.net.visibility to create a network and then v.net.salesman ? Exactly what I was going to suggest. the network created by v.net.visibility will connect all polygon nodes to all visible polygon nodes. The net will then consist of of these points plus the edges that make up the polygons. Depending on the size of the polygons and of the whole area, I imagine that this could be simplified by just using the centroids of the polygons, or ? Moritz ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] traveling salesman problem in air
Yes, the centroids should be fine. it actually did not work to run v.net.visibility when I tried but I'll give it another try with the centroids. Thanks! Martina Moritz Lennert skrev: On 15/04/09 09:19, Wolf Bergenheim wrote: On 15.04.2009 10:05, Moritz Lennert wrote: On 15/04/09 08:55, Martina Schäfer wrote: Dear GRASS experts! I encountered an interesting problem and am curious about solutions. A helicopter company has got a file from a client regarding a forest inventory. The file contains 1430 polygons representing areas to be visited. Now we want to calculate the optimal route to visit all polygons. In contrast to a traveling salesman , we don't have a network of routes as the helicopter can fly everywhere. Would it be a solution to have the distance betweeen areas as the cost? I used a tool in MapInfo that connects successive closest points which worked very nice but not optimal. Anyone knows of other solutions? Maybe v.net.visibility to create a network and then v.net.salesman ? Exactly what I was going to suggest. the network created by v.net.visibility will connect all polygon nodes to all visible polygon nodes. The net will then consist of of these points plus the edges that make up the polygons. Depending on the size of the polygons and of the whole area, I imagine that this could be simplified by just using the centroids of the polygons, or ? Moritz ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
[GRASS-user] Rotate a map display
Hello, I want to make a map which follow a mobile. So I will have a set of raster maps and a polyline which represent a the path. One main feature is that map could follow the mobile's route. The y-axis could be the mobile'direction. My question is how can I do this. Best regards, -- Jérôme Cuinet Association GeoRezo.net ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] netCDF import via r.in.gdal
On 15/04/2009 9.13, Markus Neteler wrote: On Wed, Apr 15, 2009 at 2:00 AM, Luigi Ponti lpo...@infinito.it wrote: ... When I try to import to a latlong location, I get G_set_window(): Illegal latitude for North and no raster is created. When I use a projected location, the file gets imported but then I have bounding coordinates in dd:mm:ss and r.region complains that those are invalid. r.region map=SRF_1958.AVG n=61.4488N s=21.29965N e=43.07446E w=12.74702W n=61.4488N ** illegal value ** Not sure what I am doing wrong now. you mix sexagesimal and decimal notation... try: r.region map=SRF_1958.AVG n=61.4488 s=21.29965 e=43.07446 w=-12.74702 Thanks -- my fault: now it works. But how do you tell r.region that you are using degrees and not meters? Regards, Luigi ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] access to old mapset after reinstall of operating system and grass version
On 15/04/09 02:47, Janet Choate wrote: Hello grass community, I unfortunately had to re-install my mac os x operating system, then do a new download of grass, installing grass6.3 (previously running grass6.2). after the re-install, i put all my backed up data back on the machine. however, when i launch the new grass6.3 on my newly installed os, i am unable to enter grass with one of the old mapsets, permission is denied. i have checked the permissions on these files, i.e. i have read/write access to the PERMANENT and other mapsets within a location. but i can only start grass in that location by creating a brand new mapset. i want to reestablish my ability to open grass in those mapsets that i created and that belong to me, and that i was able to use before re-loading the data on the new operating system - anyone have any advice on how to fix this? How did you do your backup ? Maybe you are faced with the same problem as Raffaele in this post: http://lists.osgeo.org/pipermail/grass-user/2009-April/049878.html (and following) Moritz ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] access to old mapset after reinstall of operating system and grass version
On Apr 14, 2009, at 5:47 PM, grass-user-requ...@lists.osgeo.org grass-user-requ...@lists.osgeo.org wrote: From: Janet Choate jsc@gmail.com Date: April 14, 2009 5:47:41 PM GMT-07:00 To: grass-user@lists.osgeo.org Subject: [GRASS-user] access to old mapset after reinstall of operating system and grass version Hello grass community, I unfortunately had to re-install my mac os x operating system, then do a new download of grass, installing grass6.3 (previously running grass6.2). after the re-install, i put all my backed up data back on the machine. however, when i launch the new grass6.3 on my newly installed os, i am unable to enter grass with one of the old mapsets, permission is denied. i have checked the permissions on these files, i.e. i have read/write access to the PERMANENT and other mapsets within a location. but i can only start grass in that location by creating a brand new mapset. i want to reestablish my ability to open grass in those mapsets that i created and that belong to me, and that i was able to use before re-loading the data on the new operating system - anyone have any advice on how to fix this? thanx, Janet My guess is that you need newer versions of the frameworks packages. If you are running a newer version of the OS (10.4-10.5), I recommend that you install 6.4 and current frameworks. Michael___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] r.patch not working
On Apr 15, 2009, at 12:46 AM, grass-user-requ...@lists.osgeo.org grass-user-requ...@lists.osgeo.org wrote: Renae, On Wed, Apr 15, 2009 at 7:16 AM, Renae Mackas rmac...@sfu.ca wrote: Hello GRASS users- I am trying to mosaic colourcomposites from LANDSAT images. A few weeks ago, I had luck doing this using r.patch with the -z flag such as below: r.patch -z input=020.020.2000.055_rgb,021.020.2000.014_rgb, 021.021.2000.142_rgb,022.020.2000.005_rgb output=mosaic When I try doing this now however, r.patch does not seem to be working. In the output window, it shows a red cirle with an X in it next to the command, but does not print any error message below. I have tried patching even just the original rasters (rather than the rgb composites), and continue to get the same results. Since the initial (successful) attempts with r.patch, I have extended the boundaries of the region I am working with and imported rasters from other locations. All of the image rasters are currently within the region boundaries though. Is there any reason why the changes I have made would have changed how r.patch functions? Any suggestions of how to get it working again? r.patch (like almost all rast commands) respect the current region. You need to first set the current region to all raster maps of interest, then run r.patch: g.region rast=020.020.2000.055_rgb,021.020.2000.014_rgb, 021.021.2000.142_rgb,022.020.2000.005_rgb -p r.patch ... Hope this helps Markus You don't say which GRASS version you are running and which platform you are using. Recently, we've run into the problem that random modules like r.patch do not work or work intermittently in Windows Vista using the OSGEO4W installer of GRASS 6.4RC3. A new binary installer for GRASS 6.4RC4 hopefully solves this problem. Michael ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] traveling salesman problem in air
On 15/04/09 09:46, Martina Schäfer wrote: Yes, the centroids should be fine. it actually did not work to run v.net.visibility when I tried but I'll give it another try with the centroids. Keep us posted. This is an interesting application of these modules... Moritz ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] traveling salesman problem in air
Sorry if I'm beside the point, but I insist, being myself interested in this topic... My suggestion of a delaunay triangle net to join polygons centroids seems to be totally beside the point :-( I would just like to know why. Probably sth I did not catch ? Thank you VB Le mercredi 15 avril 2009 à 18:04 +0200, Moritz Lennert a écrit : On 15/04/09 09:46, Martina Schäfer wrote: Yes, the centroids should be fine. it actually did not work to run v.net.visibility when I tried but I'll give it another try with the centroids. Keep us posted. This is an interesting application of these modules... Moritz ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] traveling salesman problem in air
On 15/04/09 18:11, Vincent Bain wrote: Sorry if I'm beside the point, but I insist, being myself interested in this topic... My suggestion of a delaunay triangle net to join polygons centroids seems to be totally beside the point :-( I would just like to know why. Probably sth I did not catch ? Haven't thought this through completely, but: v.delaunay will only create links between centroids close to each other, whereas v.net.visibility will create links between all centroids. This leaves v.net.salesman with a larger option of paths to choose from. As we are not bound to any paths, this seems more appropriate to me. Does this sound convincing ? Moritz ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Missing v.generalize in Grass 6.23
Hi All, Got Version 6.4 working last night and started to experiment with v.generalize. I'm using it on a group of polygons that represent the Hawaiian islands and noticed some interesting behavior. In other systems, I would expect these features to be treated at multipolygons, however in GRASS I see that I have the option of specifying point, line, boundary, or area. I'm not exactly sure what the difference between boundary and area is, but it does seem to make a difference in the v.generalize output which of them I choose. Can someone clarify for me how these geometry types affect the operation v.generalize? Thanks, Roger -- On Tue, Apr 14, 2009 at 4:23 PM, Roger André ran...@gmail.com wrote: Hi Martin, Thanks for the info, I'll get 6.4 installed tonight. Roger -- On Tue, Apr 14, 2009 at 3:23 PM, Martin Landa landa.mar...@gmail.comwrote: Hi, 2009/4/14 Roger André ran...@gmail.com: Sorry for the newbie question, but I just finished getting GRASS 6.23 built last night and am using it for the first time today. I've gotten a new location created, and a shapefile imported, and now I would like to simplify the geometry. Unfortunately, it appears that v.generalize is missing. Can someone tell me if this tool only comes with a later version of GRASS, or is it possible that I missed a build step. v.generalize is available in GRASS = 6.3.0. BTW, GRASS 6.2.3 is pretty old. Try the last RC of GRASS 6.4.0 (RC4). Regards, Martin -- Martin Landa landa.martin gmail.com * http://gama.fsv.cvut.cz/~landahttp://gama.fsv.cvut.cz/%7Elanda ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Rotate a map display
Jérôme, If you need to warp a map for a strict display purpose, IMHO it's not to be performed from within grass given that this operation makes no sense geographically. Don't know what the context is, but if you just have to rotate an image output of a map maybe you'd better look towards image manipulation tools (e.g. imagemagick and the -rotate option, which can easily be integrated in a script process). Let us know a bit more about your needs ! Vincent Le mercredi 15 avril 2009 à 10:22 +0200, Jérôme - GeoRezo.net a écrit : Hello, I want to make a map which follow a mobile. So I will have a set of raster maps and a polyline which represent a the path. One main feature is that map could follow the mobile's route. The y-axis could be the mobile'direction. My question is how can I do this. Best regards, ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] traveling salesman problem in air
On Wednesday 15 April 2009, Vincent Bain wrote: Don't know if it makes sense, but I would try v.delaunay to build a net between closest centroids (given that each centroid is roughtly centered on its area). Vincent That seems like a good judgement call, considering that the resulting network of connecting every centroid could become very large. This problem reminded me of a similar task, where we wanted to visit data loggers in the field and were not constrained to any existing 'network'. I found that a cost-surface (in this case accumulated slope gradient) gave us a nice constraint on how to use a simple network derived from v.delaunay. Some notes on that operation here: http://casoilresource.lawr.ucdavis.edu/drupal/node/698 Cheers, Dylan -- Dylan Beaudette Soil Resource Laboratory http://casoilresource.lawr.ucdavis.edu/ University of California at Davis 530.754.7341 ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Rotate a map display
Markus, I have seen the cairo.Matrix.rotate() documentation, and it is juste a constructor of matrix, not very useful ;) Also, if I quit the GIS context, I must produce at least a twice larger image, and cut the border in oder to have a wholly image. As I wrote in my former mail, I can choose an other software. I have seen MapServer which is able to rotate my map view. Finally, I think MapServer is better for my needs. Jérôme - Original Message - From: Markus Neteler nete...@osgeo.org To: Vincent Bain b...@toraval.fr Cc: Jérôme - GeoRezo.net jer...@georezo.net; GRASS user list grass-user@lists.osgeo.org Sent: Wednesday, April 15, 2009 9:09 PM Subject: Re: [GRASS-user] Rotate a map display On Wed, Apr 15, 2009 at 7:28 PM, Vincent Bain b...@toraval.fr wrote: Jérôme, If you need to warp a map for a strict display purpose, IMHO it's not to be performed from within grass given that this operation makes no sense geographically. Don't know what the context is, but if you just have to rotate an image output of a map maybe you'd better look towards image manipulation tools (e.g. imagemagick and the -rotate option, which can easily be integrated in a script process). Perhaps you can use the CAIRO driver. In CAIRO, I see cairo.Matrix.rotate() http://cairographics.org/documentation/cairomm/reference/classCairo_1_1Matrix.html Just an untested idea, I am not familiar with the CAIRO driver in GRASS. Markus ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] traveling salesman problem in air
On 15.04.2009 23:42, Martina Schäfer wrote: Interesting discussion!! I've created the centroids but unfortunately, the visibility network module repeatedly crashed (I am using GRASS 6.4 on Mac OS, but tried on Windows XP as well) with the message out of memory. I am new to GRASS, any advice how to deal with that? Hmm... yes I can see how that can be a problem... How much memory does your computer have and how many centroids did you say you have? Have you tried with the area polygons instead? --Wolf -- :3 ) Wolf Bergenheim ( 8: ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] traveling salesman problem in air
On 15/04/09 22:42, Martina Schäfer wrote: Interesting discussion!! I've created the centroids but unfortunately, the visibility network module repeatedly crashed (I am using GRASS 6.4 on Mac OS, but tried on Windows XP as well) with the message out of memory. I am new to GRASS, any advice how to deal with that? I really want to see if this works, so I will continue trying! Well, this seems to be an argument for the v.delaunay approach... And for the possible need to check possibilities of reduction of memory usage in v.net.visibility. Moritz ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
[GRASS-user] Multiple to one question
This is somewhat a followup to my prior post and somewhat a new, but related problem. I ended up doing what I had proposed, which is I have a table that has each sample value and location: LocationValue cat a 3.1 1 b 2.1 2 a 1.1 3 c 4.1 4 etc. Then I have linked each vector point to multiple categories by using v.edit map=foo layer=1 where=cat==1 type=point tool=catadd cat=3 (for example) So then I have an vector point that has a cat of both 1 and 3. So far so good. If I then try to display Label vectors using Value for the attribute, it works fine. Each value is displayed separated by a slash /. The problem is if I try to use a SQL query, it is not working as expected. I think that what it is doing is just applying the test to the first value, then showing or hiding the other values based on that first test (although I am not 100% sure that is what it is doing). So, for example, if I were to do Use SQL query: Value 2.0 it would draw a label like this: 3.1/1.1 And if I were to use a query of Value 2.0 it would not display anything. What I want it to do is to show all values that are actually greater than 2. and not to display the others. Any suggestions of what it is doing, or what I can do about it? I am using 6.4 RC3 on a Mac, and using sqlite for my db. If I connect to the db just using the command line to connect to sqlite, then the query works as expected. As a secondary question, is it possible to change the / separator that is used in the labels? Where is that determined? Can I instead make it /n and get each value below? Thanks, --Adam ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Multiple to one question
On 16/04/09 01:00, Adam Dershowitz, Ph.D., P.E. wrote: This is somewhat a followup to my prior post and somewhat a new, but related problem. I ended up doing what I had proposed, which is I have a table that has each sample value and location: LocationValue cat a3.11 b2.12 a1.13 c4.14 etc. Then I have linked each vector point to multiple categories by using v.edit map=foo layer=1 where=cat==1 type=point tool=catadd cat=3 (for example) So then I have an vector point that has a cat of both 1 and 3. So far so good. If I then try to display Label vectors using Value for the attribute, it works fine. Each value is displayed separated by a slash /. The problem is if I try to use a SQL query, it is not working as expected. I think that what it is doing is just applying the test to the first value, then showing or hiding the other values based on that first test (although I am not 100% sure that is what it is doing). So, for example, if I were to do Use SQL query: Value 2.0 it would draw a label like this: 3.1/1.1 And if I were to use a query of Value 2.0 it would not display anything. What I want it to do is to show all values that are actually greater than 2. and not to display the others. Any suggestions of what it is doing, or what I can do about it? Create a view in your database containing the results of your query, including cat values, and link your map to that view, instead of the table. If you want to change the content, just drop the view and recreate it with a different query. You can do all this either directly in sqlite, or via the db.execute GRASS module. Moritz ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Rotate a map display
Markus Neteler wrote: If you need to warp a map for a strict display purpose, IMHO it's not to be performed from within grass given that this operation makes no sense geographically. Don't know what the context is, but if you just have to rotate an image output of a map maybe you'd better look towards image manipulation tools (e.g. imagemagick and the -rotate option, which can easily be integrated in a script process). Perhaps you can use the CAIRO driver. In CAIRO, I see cairo.Matrix.rotate() http://cairographics.org/documentation/cairomm/reference/classCairo_1_1Matrix.html Just an untested idea, I am not familiar with the CAIRO driver in GRASS. Even in 7.0, a lot of d.* commands are still concerning themselves with screen coordinates, the display frame, and the u_to_d transformation (which is offset+scale with no rotation). -- Glynn Clements gl...@gclements.plus.com ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user
Re: [GRASS-user] Multiple to one question
--Adam On Apr 15, 2009, at 9:29 PM, Adam Dershowitz, Ph.D., P.E. wrote: On Apr 15, 2009, at 4:29 PM, Moritz Lennert wrote: On 16/04/09 01:00, Adam Dershowitz, Ph.D., P.E. wrote: This is somewhat a followup to my prior post and somewhat a new, but related problem. I ended up doing what I had proposed, which is I have a table that has each sample value and location: LocationValue cat a3.11 b2.12 a1.13 c4.14 etc. Then I have linked each vector point to multiple categories by using v.edit map=foo layer=1 where=cat==1 type=point tool=catadd cat=3 (for example) So then I have an vector point that has a cat of both 1 and 3. So far so good. If I then try to display Label vectors using Value for the attribute, it works fine. Each value is displayed separated by a slash /. The problem is if I try to use a SQL query, it is not working as expected. I think that what it is doing is just applying the test to the first value, then showing or hiding the other values based on that first test (although I am not 100% sure that is what it is doing). So, for example, if I were to do Use SQL query: Value 2.0 it would draw a label like this: 3.1/1.1 And if I were to use a query of Value 2.0 it would not display anything. What I want it to do is to show all values that are actually greater than 2. and not to display the others. Any suggestions of what it is doing, or what I can do about it? Create a view in your database containing the results of your query, including cat values, and link your map to that view, instead of the table. If you want to change the content, just drop the view and recreate it with a different query. You can do all this either directly in sqlite, or via the db.execute GRASS module. Moritz I really liked the suggestion, so I tried itbut it doesn't work. To continue my simple example, I did create view less2 cat,Value from data where Value 2; So I end up with a view, as expected. The problem is that if I now link my map to that view, I get an error: No attribute found for cat 1 (since the object still tries to link to 1). And, the same for 2 and 4. And, I still see the points and slashes (ie it still draws point a and puts a null value then a slash then 1.1. So is there a way to have it not draw a symbol and not draw null text when it can't find an attribute? Since, the whole point of what I am trying to do in this case is to eliminate certain data with a query? It seems like I should be able to edit the cats, and I tried a few different things with v.edit, but I have not had any luck. I tried some things like this: v.edit map=foo tool=catdel -r where=cat 0 but it gives me: ERROR: Tool catdel requires option cats Although the above seems to work with tool=select, which I was using to test things about before doing the delete. I copied my original vectors, and created the view. Now what I want to do is to delete all the categories in this vector that point to null. Is there a way to do that? Thanks, --Adam ___ grass-user mailing list grass-user@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-user