mirror of
				https://github.com/django/django.git
				synced 2025-11-04 05:35:37 +00:00 
			
		
		
		
	Refs #27421 -- Documented GDALRaster creation in detail.
This commit is contained in:
		
							parent
							
								
									6d8979f4c2
								
							
						
					
					
						commit
						ed3215ad53
					
				
					 1 changed files with 118 additions and 1 deletions
				
			
		| 
						 | 
					@ -1111,7 +1111,9 @@ blue.
 | 
				
			||||||
    be opened with write access. If the input is raw data, the parameters ``width``,
 | 
					    be opened with write access. If the input is raw data, the parameters ``width``,
 | 
				
			||||||
    ``height``, and ``srid`` are required. The following example shows how rasters
 | 
					    ``height``, and ``srid`` are required. The following example shows how rasters
 | 
				
			||||||
    can be created from different input sources (using the sample data from the
 | 
					    can be created from different input sources (using the sample data from the
 | 
				
			||||||
    GeoDjango tests, see also the :ref:`gdal_sample_data` section)::
 | 
					    GeoDjango tests, see also the :ref:`gdal_sample_data` section). For a
 | 
				
			||||||
 | 
					    detailed description of how to create rasters using dictionary input, see
 | 
				
			||||||
 | 
					    the :ref:`gdal-raster-ds-input` section.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        >>> from django.contrib.gis.gdal import GDALRaster
 | 
					        >>> from django.contrib.gis.gdal import GDALRaster
 | 
				
			||||||
        >>> rst = GDALRaster('/path/to/your/raster.tif', write=False)
 | 
					        >>> rst = GDALRaster('/path/to/your/raster.tif', write=False)
 | 
				
			||||||
| 
						 | 
					@ -1537,6 +1539,121 @@ blue.
 | 
				
			||||||
                   [2, 2, 2, 2],
 | 
					                   [2, 2, 2, 2],
 | 
				
			||||||
                   [3, 3, 3, 3]], dtype=uint8)
 | 
					                   [3, 3, 3, 3]], dtype=uint8)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. _gdal-raster-ds-input:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Creating rasters from data
 | 
				
			||||||
 | 
					--------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This section describes how to create rasters from scratch using the
 | 
				
			||||||
 | 
					``ds_input`` parameter.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A new raster is created when a ``dict`` is passed to the :class:`GDALRaster`
 | 
				
			||||||
 | 
					constructor. The dictionary contains defining parameters of the new raster,
 | 
				
			||||||
 | 
					such as the origin, size, or spatial reference system. The dictionary can also
 | 
				
			||||||
 | 
					contain pixel data and information about the format of the new raster. The
 | 
				
			||||||
 | 
					resulting raster can therefore be file-based or memory-based, depending on the
 | 
				
			||||||
 | 
					driver specified.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					There's no standard for describing raster data in a dictionary or JSON flavor.
 | 
				
			||||||
 | 
					The definition of the dictionary input to the :class:`GDALRaster` class is
 | 
				
			||||||
 | 
					therefore specific to Django. It's inspired by the `geojson`__ format, but the
 | 
				
			||||||
 | 
					``geojson`` standard is currently limited to vector formats.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Examples of using the different keys when creating rasters can be found in the
 | 
				
			||||||
 | 
					documentation of the corresponding attributes and methods of the
 | 
				
			||||||
 | 
					:class:`GDALRaster` and :class:`GDALBand` classes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__ http://geojson.org
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The ``ds_input`` dictionary
 | 
				
			||||||
 | 
					~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Only a few keys are required in the ``ds_input`` dictionary to create a raster:
 | 
				
			||||||
 | 
					``width``, ``height``, and ``srid``. All other parameters have default values
 | 
				
			||||||
 | 
					(see the table below). The list of keys that can be passed in the ``ds_input``
 | 
				
			||||||
 | 
					dictionary is closely related but not identical to the :class:`GDALRaster`
 | 
				
			||||||
 | 
					properties. Many of the parameters are mapped directly to those properties;
 | 
				
			||||||
 | 
					the others are described below.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The following table describes all keys that can be set in the ``ds_input``
 | 
				
			||||||
 | 
					dictionary.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					=============== ======== ==================================================
 | 
				
			||||||
 | 
					Key             Default  Usage
 | 
				
			||||||
 | 
					=============== ======== ==================================================
 | 
				
			||||||
 | 
					``srid``        required Mapped to the :attr:`~GDALRaster.srid` attribute
 | 
				
			||||||
 | 
					``width``       required Mapped to the :attr:`~GDALRaster.width` attribute
 | 
				
			||||||
 | 
					``height``      required Mapped to the :attr:`~GDALRaster.height` attribute
 | 
				
			||||||
 | 
					``driver``      ``MEM``  Mapped to the :attr:`~GDALRaster.driver` attribute
 | 
				
			||||||
 | 
					``name``        ``''``   See below
 | 
				
			||||||
 | 
					``origin``      ``0``    Mapped to the :attr:`~GDALRaster.origin` attribute
 | 
				
			||||||
 | 
					``scale``       ``0``    Mapped to the :attr:`~GDALRaster.scale` attribute
 | 
				
			||||||
 | 
					``skew``        ``0``    Mapped to the :attr:`~GDALRaster.width` attribute
 | 
				
			||||||
 | 
					``bands``       ``[]``   See below
 | 
				
			||||||
 | 
					``nr_of_bands`` ``0``    See below
 | 
				
			||||||
 | 
					``datatype``    ``6``    See below
 | 
				
			||||||
 | 
					=============== ======== ==================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. object:: name
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    String representing the name of the raster. When creating a file-based
 | 
				
			||||||
 | 
					    raster, this parameter must be the file path for the new raster.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. object:: datatype
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Integer representing the data type for all the bands. Defaults to ``6``
 | 
				
			||||||
 | 
					    (Float32). All bands of a new raster are required to have the same datatype.
 | 
				
			||||||
 | 
					    The value mapping is:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ===== =============== ===============================
 | 
				
			||||||
 | 
					    Value GDAL Pixel Type Description
 | 
				
			||||||
 | 
					    ===== =============== ===============================
 | 
				
			||||||
 | 
					    1     GDT_Byte        Eight bit unsigned integer
 | 
				
			||||||
 | 
					    2     GDT_UInt16      Sixteen bit unsigned integer
 | 
				
			||||||
 | 
					    3     GDT_Int16       Sixteen bit signed integer
 | 
				
			||||||
 | 
					    4     GDT_UInt32      Thirty-two bit unsigned integer
 | 
				
			||||||
 | 
					    5     GDT_Int32       Thirty-two bit signed integer
 | 
				
			||||||
 | 
					    6     GDT_Float32     Thirty-two bit floating point
 | 
				
			||||||
 | 
					    7     GDT_Float64     Sixty-four bit floating point
 | 
				
			||||||
 | 
					    ===== =============== ===============================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. object:: nr_of_bands
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Integer representing the number of bands of the raster. A raster can be
 | 
				
			||||||
 | 
					    created without passing band data upon creation. If the number of bands
 | 
				
			||||||
 | 
					    isn't specified, it's automatically calculated from the length of the
 | 
				
			||||||
 | 
					    ``bands`` input. The number of bands can't be changed after creation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.. object:: bands
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    A list of ``band_input`` dictionaries with band input data. The resulting
 | 
				
			||||||
 | 
					    band indices are the same as in the list provided. The definition of the
 | 
				
			||||||
 | 
					    band input dictionary is given below. If band data isn't provided, the
 | 
				
			||||||
 | 
					    raster bands values are instantiated as an array of zeros and the "no
 | 
				
			||||||
 | 
					    data" value is set to ``None``.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The ``band_input`` dictionary
 | 
				
			||||||
 | 
					~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The ``bands`` key in the ``ds_input`` dictionary is a list of ``band_input``
 | 
				
			||||||
 | 
					dictionaries. Each ``band_input`` dictionary can contain pixel values and the
 | 
				
			||||||
 | 
					"no data" value to be set on the bands of the new raster. The data array can
 | 
				
			||||||
 | 
					have the full size of the new raster or be smaller. For arrays that are smaller
 | 
				
			||||||
 | 
					than the full raster, the ``size``, ``shape``, and ``offset`` keys  control the
 | 
				
			||||||
 | 
					pixel values. The corresponding keys are passed to the :meth:`~GDALBand.data`
 | 
				
			||||||
 | 
					method. Their functionality is the same as setting the band data with that
 | 
				
			||||||
 | 
					method. The following table describes the keys that can be used.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					================ ================================= ======================================================
 | 
				
			||||||
 | 
					Key              Default                           Usage
 | 
				
			||||||
 | 
					================ ================================= ======================================================
 | 
				
			||||||
 | 
					``nodata_value`` ``None``                          Mapped to the :attr:`~GDALBand.nodata_value` attribute
 | 
				
			||||||
 | 
					``data``         Same as ``nodata_value`` or ``0`` Passed to the :meth:`~GDALBand.data` method
 | 
				
			||||||
 | 
					``size``         ``(with, height)`` of raster      Passed to the :meth:`~GDALBand.data` method
 | 
				
			||||||
 | 
					``shape``        Same as size                      Passed to the :meth:`~GDALBand.data` method
 | 
				
			||||||
 | 
					``offset``       ``(0, 0)``                        Passed to the :meth:`~GDALBand.data` method
 | 
				
			||||||
 | 
					================ ================================= ======================================================
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Settings
 | 
					Settings
 | 
				
			||||||
========
 | 
					========
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue