示例#1
0
文件: segment.py 项目: pesekon2/grass
 def format(self, mapobj, file_name="", fill=True):
     """The segmentation routines require a disk file to be used for paging
     segments in and out of memory. This routine formats the file open for
     write on file descriptor fd for use as a segment file.
     """
     if file_name == "":
         file_name = libgis.G_tempfile()
     mapobj.temp_file = open(file_name, "w")
     size = ctypes.sizeof(RTYPE[mapobj.mtype]["ctypes"])
     if fill:
         libseg.Segment_format(
             mapobj.temp_file.fileno(),
             self.rows(),
             self.cols(),
             self.srows,
             self.scols,
             size,
         )
     else:
         libseg.Segment_format_nofill(
             mapobj.temp_file.fileno(),
             self.rows(),
             self.cols(),
             self.srows,
             self.scols,
             size,
         )
     # TODO: why should I close and then re-open it?
     mapobj.temp_file.close()
示例#2
0
    def open(self, mapobj):
        """Open a segment it is necessary to pass a RasterSegment object.

        """
        self.val = RTYPE[mapobj.mtype]['grass def']()
        size = ctypes.sizeof(RTYPE[mapobj.mtype]['ctypes'])
        file_name = libgis.G_tempfile()
        libseg.Segment_open(self.c_seg, file_name, self.rows(), self.cols(),
                            self.srows, self.scols, size, self.nseg())
        self.flush()