[GRASS-dev] opencell opening temp null file: no temp files available

Andi Jochem Andruit at gmx.de
Wed Nov 19 10:48:17 EST 2008


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 at 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 at 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


More information about the grass-dev mailing list