Link Search Menu Expand Document (external link)

OpenVisus.dataset.PyDataset.getExtendedInfo

Describe function here.

Function Definition

	def getExtendedInfo(self):
		pdim=self.getPointDim()
		p1=self.getLogicBox()[0]
		p2=self.getLogicBox()[1]
		center=[(p1[I]+p2[I])//2 for I in range(pdim)]
		dims=[(p2[I]-p1[I]) for I in range(pdim)]
		fields=[self.getField(it) for it in self.getFields()]
		timesteps=[int(it) for it in self.getTimesteps().asVector()]

		import datetime

		files=[]
		for filename in list(self.getAllFilenames()):
			size=FileUtils.getFileSize(Path(filename))
			if size>0:
				files.append({
					"filename" : filename, 
					"size" : size,
					"modification_time" : datetime.datetime.fromtimestamp(os.path.getmtime(filename)).strftime('%Y-%m-%d %H:%M:%S'),
					"creation_time" : datetime.datetime.fromtimestamp(os.path.getctime(filename)).strftime('%Y-%m-%d %H:%M:%S'),
				})

		ret={
			"url": self.getUrl(),
			"dimension": pdim,
			"logic_box" : self.getLogicBox(),
			"dims" : dims,
			"timesteps": timesteps,
			"fields" : [],
			"num_files" : len(files),
			"total_file_size" : sum([it["size"] for it in files]),
			"total_field_size": sum([field.dtype.getByteSize(PointNi(dims)) for field in fields]),
			"files": files,
		}

		for field in fields:
			dtype=field.dtype
			ranges=[dtype.getDTypeRange(I) for I in range(dtype.ncomponents())]
			ranges=[(r.From,r.To) if r.delta()>0 else (0,0) for r in ranges]

			ret["fields"].append({
				"name":field.name,
				"dtype":  dtype.toString(),
				"default_compression":field.default_compression,
				"default_layout":field.default_layout,
				"default_value":field.default_value,
				"filter":field.filter,
				"dtype_ranges":ranges,
				"total_field_size" : dtype.getByteSize(PointNi(dims)),
			})

		return ret