Dear all, I'm going on with the GSoC, and I'm using ctypes to call the Grass's function, but I found this comment:
http://stackoverflow.com/a/5686873 (from a cython developer) that it has instilled in me a doubt that using Cython (http://cython.org/) could make pygrass more flexible/extensible. From my point of view I prefer ctypes, because it is already inside grass and because I need to get something running quickly, but maybe could be more useful for Grass to implement less code but with a tool that give more flexibility in the future... What do you think? Can I go on with my GSoC project using ctypes? should i switch to Cython? I did some benchmarks to test the speed of pygrass, and it is not too bad. Below I reported the execution time of add a number to a Raster map, using r.mapcal module, the RasterRow class (using Rast_get_row, and Rast_put_row functions), and using the Segmentation library (segment_get_row and segment_put_row): r.mapcalc +2; 21.487251 sec/pass RasterRow +2; 11.181928 sec/pass RasterSeg +2; 14.730741 sec/pass Test an if condition: r.mapcalc if; 14.240596 sec/pass RasterRow if; 14.753899 sec/pass RasterSeg if; 19.982334 sec/pass Test a function: r.mapcalc sqrt; 16.495872 sec/pass RasterRow sqrt; 18.591585 sec/pass RasterSeg sqrt; 22.305732 sec/pass You may find the code here: git clone https://code.google.com/p/pygrass/ and you can run the benchmark code with: python test/benchmark.py more info on the RasterRow and RasterSegment classes are available here: http://pygrass.readthedocs.org/en/latest/raster.html Comments are welcome! Best regards, Pietro _______________________________________________ grass-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/grass-dev
