Hello!
I found out that it has nothing to do with my open and closed cell files
I must be something in my reproject function.
I read in some points (2000) and each point is transformed to lat/lang using following function
void transfform_lat(double longitude, double latitude){
struct Key_Value *in_proj_info, *in_unit_info;
struct pj_info iproj;
struct pj_info oproj;
...
...
...
if ((in_proj_info = G_get_projinfo()) == NULL)
G_fatal_error("Can't get projection info of current location");
if ((in_unit_info = G_get_projunits()) == NULL)
G_fatal_error("Can't get projection units of current location");
if (pj_get_kv(&iproj, in_proj_info, in_unit_info) < 0)
G_fatal_error("Can't get projection key values of current location");
G_free_key_value( in_proj_info );
G_free_key_value( in_unit_info );
/* set output projection to lat/long for solpos*/
oproj.zone = 0;
oproj.meters = 1.;
sprintf(oproj.proj, "ll");
if ((oproj.pj = pj_latlong_from_proj(iproj.pj)) == NULL)
G_fatal_error("Unable to set up lat/long projection parameters");
if(pj_do_proj(&longitude, &latitude, &iproj, &oproj) < 0)
{
fprintf(stderr,"Error in pj_do_proj (projection of input coordinate pair)\n");
exit(0);
}
......
}
After 1024 projections the programm stops.
When I have a look in /proc/<pid>/fd/
I can see the following:
...
...
...
lr-x------ 1 andi andi 64 2008-11-19 16:21 66 -> /usr/local/grass-6.3.0/etc/ellipse.table
lr-x------ 1 andi andi 64 2008-11-19 16:21 67 -> /usr/local/grass-6.3.0/etc/ellipse.table
lr-x------ 1 andi andi 64 2008-11-19 16:21 68 -> /usr/local/grass-6.3.0/etc/ellipse.table
lr-x------ 1 andi andi 64 2008-11-19 16:21 69 -> /usr/local/grass-6.3.0/etc/ellipse.table
lr-x------ 1 andi andi 64 2008-11-19 16:19 7 -> /usr/local/grass-6.3.0/etc/ellipse.table
lr-x------ 1 andi andi 64 2008-11-19 16:21 70 -> /usr/local/grass-6.3.0/etc/ellipse.table
lr-x------ 1 andi andi 64 2008-11-19 16:21 71 -> /usr/local/grass-6.3.0/etc/ellipse.table
lr-x------ 1 andi andi 64 2008-11-19 16:21 72 -> /usr/local/grass-6.3.0/etc/ellipse.table
lr-x------ 1 andi andi 64 2008-11-19 16:21 73 -> /usr/local/grass-6.3.0/etc/ellipse.table
lr-x------ 1 andi andi 64 2008-11-19 16:21 74 -> /usr/local/grass-6.3.0/etc/ellipse.table
lr-x------ 1 andi andi 64 2008-11-19 16:21 75 -> /usr/local/grass-6.3.0/etc/ellipse.table
lr-x------ 1 andi andi 64 2008-11-19 16:21 76 -> /usr/local/grass-6.3.0/etc/ellipse.table
...
Does anybody know how to solve the problem???
Thanks.
Andi
Glynn Clements wrote:
> Andruit@gmx.de wrote:
>>> I am writing a Grass programm which creates a raster, reads the values
>> of the raster map at certain points and creates a new rastermap having
>> the same name as the old one.
>>
>> I am using the function
>>
>> G_open_cell_new() to overwrite the existing raster map.
>>
>> and the function
>>
>> G_close_cell()
>>
>>
>> It works fine.
>>
>> But after about 1000 loops I get the following messsage.
>>
>> WARNING: opencell opening temp null file: no temp files available
>>
>> Does anyone know what it means. I have enough space left in my ./tmp
>> folder. And I also have write permissions on it.>
> It probably means that files aren't getting closed, so you are
> exceeding the limit on the number of open files per process (by
> default 1024, check with ulimit -n).
>
> On Linux, you can check which files a process has open by looking in
> the /proc/<pid>/fd directory, where <pid> is the PID of the process.
>
> If you're modifying a map "in-place", you'll need to close and re-open
> the input map in order to see the changes. Opening a map for write
> creates a temporary file, which is renamed over the original when
> closed. If the original cell/fcell file is still open for read at that
> point, it will still exist and still be open (it will show up as
> "(deleted)" in /proc/<pid>/fd).
>
-- Ist Ihr Browser Vista-kompatibel? Jetzt die neuesten Browser-Versionen downloaden: http://www.gmx.net/de/go/browser
-- "Feel free" - 10 GB Mailbox, 100 FreeSMS/Monat ... Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail _______________________________________________ grass-dev mailing list grass-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/grass-dev
--
Sensationsangebot nur bis 30.11: GMX FreeDSL - Telefonanschluss + DSL
für nur 16,37 Euro/mtl.!* http://dsl.gmx.de/?ac=OM.AD.PD003K11308T4569a