Más

¿Cómo convertir un tiff RGB en pseudocolor con GDAL, etc.?

¿Cómo convertir un tiff RGB en pseudocolor con GDAL, etc.?


En QGIS hice una imagen de pseudocolor de banda única a partir de una de las bandas de un GeoTiff RGB. Elijo una banda y luego hago una interpolación de color lineal (ver imagen adjunta).

Ahora quiero hacer lo mismo en la línea de comandos (GDAL / Mapnik / etc.) para poder poner en marcha un flujo de trabajo, pero realmente no sé por dónde empezar.

Mi idea es dividir la imagen RGB en tres archivos de escala de grises para cada banda y luego darle a cada banda un mapa de pseudocolor. ¿Alguna idea de cómo hacer esto?


¡Así que lo descubrí!

  1. gdal_translate -b 2 input_rgb.tiff output_green.tiff
  2. gdaldem color-relieve output_green.tiff green_colortable.txt output_green_rgb.tifftomando la tabla de colores de QGIS.

Hice esto para las bandas roja y verde. ¡Después de eso, los combiné usando Mapnik!


TIFF (TIF)

La biblioteca GDB admite las formas más comunes de formato de archivo de imagen etiquetado (TIFF) y archivos GeoTIFF. En particular, es posible leer .tiff B (mapa de bits), .tiff R (RGB), .tiff P (paleta) y .tiff G (escala de grises). Se permiten una variedad de esquemas de compresión. Los archivos Cloud Optimized GeoTIFF (COG) también son compatibles tanto para la lectura como para la creación.

El TIFF fue diseñado para ser un estándar extensible y universal para el intercambio de imágenes. Un archivo TIFF consta de una imagen y una lista de etiquetas de información que describen la imagen. Es posible una variedad de ordenaciones de imágenes, con varios tipos de compresión, utilizando archivos TIFF. El formato es ampliable, porque se pueden agregar nuevas etiquetas de información a voluntad. Se requiere un lector de archivos TIFF para ignorar las etiquetas no reconocidas.

Debido a que es realmente imposible para un lector TIFF leer todos los archivos TIFF posibles, se ha desarrollado una pequeña cantidad de clasificaciones de subconjuntos TIFF. También se han desarrollado requisitos para leer y escribir estos archivos clasificados.

Los archivos TIFF G contienen un canal de imágenes. Los archivos TIFF B contienen un solo mapa de bits. Los archivos TIFF P contienen un solo canal de imágenes y un segmento de pseudocolor. Los archivos TIFF R contienen tres canales de imagen (RGB).

El soporte PCI para archivos TIFF incluye las siguientes profundidades de bits: 8U, 16S, 16U, 32S, 32U, 32R, 64S, 64U, 64R, C16S, C32S, C32R. Además, PCI puede leer y crear rásteres de 1 bit en un TIFF como mapas de bits.

  • 1 canal: da como resultado un archivo TIFF G (o escala de grises)
  • 1 canal + PCT: da como resultado un archivo TIFF P (o pseudocoloreado)
  • 3 canales: resultados en un archivo TIFF RGB
  • 1 mapa de bits: da como resultado un archivo TIFF B (o mapa de bits)
  • Más de 4 canales: da como resultado un archivo TIFF RGB con bandas de datos adicionales

Los archivos TIFF no admiten tablas de búsqueda (LUT).

Al leer datos, las etiquetas de formato de archivo de imagen intercambiable (Exif) se importan como metadatos, que contienen propiedades de imagen específicas.


5 respuestas 5

No, no te estás perdiendo nada. No tiene ningún sentido convertir imágenes a CMYK, y hay varias buenas razones para NO hacerlo. La conversión de imágenes a tiff CMYK aplanado es un antiguo flujo de trabajo de QuarkXpress que hoy en día es una completa pérdida de tiempo, especialmente con InDesign.

Lo que es una buena idea es cambiar el tamaño de las imágenes en Photoshop antes de la salida final, para reducir el tamaño del archivo y para un control máximo.

Si está colocando imágenes CMYK, asegúrese de que las preferencias de InDesign estén configuradas para conservar los perfiles de color incrustados; de lo contrario, puede obtener cambios de color no deseados en la exportación de PDF. Indesign maneja la conversión al espacio de color de destino en la exportación.

Estás por delante de la curva aquí. Existe mucha confusión sobre cuándo un diseñador debe cambiar los modos de color. Es simple: nunca (o lo más tarde posible) es la mejor opción. Los impresores que quieren que se les haga lo mismo están trabajando de mala fe.

Para decirlo sin rodeos, quienes aconsejan "ver el arte en el mismo modo en que se imprimirá" se equivocan por al menos dos razones (creo que obvias).

  1. Es posible que un diseñador nunca sepa realmente cuál será el perfil del dispositivo de salida.
  2. Todavía es imposible obtener una vista previa en pantalla, cmyk real.

El color es confuso. Todo es una simulación hasta que sale de la imprenta. Es tosco suponer los valores finales de tinta necesarios para coincidir con los ideales de color para cambiar sustratos y dispositivos. Los expertos en diseño generalmente tienen poca comprensión técnica (por lo que los adagios respaldan sus creencias generalmente obsoletas).

Sí, CMYK da como resultado un tamaño de imagen más grande (es un canal más que debe contener el archivo), pero tiene mucho sentido ver el arte en el mismo modo en el que se imprimirá. Las aplicaciones de Adobe tienen la configuración especial "Vista previa de impresión" para documentos por una razón. Necesita hablar con su impresor sobre esto. Muchas impresoras requieren que CMYK pase los estándares de preimpresión para su prensa con impresión en color 4 / c (CMYK). Siempre consulte con su impresora para asegurarse de que está enviando archivos con las especificaciones adecuadas.

Un perfil de color es una herramienta diferente a un modo de color, y dado que RGB tiene una gama de colores más amplia que CMYK, es mejor convertir a CMYK para tener una mejor idea de lo que realmente se va a imprimir. Cualquier empresa que se precie tendrá pautas de marca que dicten los colores oficiales tanto en RGB como en CMYK, y no hay garantía de que sea una conversión simple. Los colores cambiarán al pasar de RGB a CMYK y lo último que alguien quiere son sorpresas en el producto final, sobre todo en el cliente.

Para abordar algunos puntos específicos de la pregunta:

Actualmente recibimos imágenes CMYK TIF / TIFF de fotografías de nuestra agencia de diseño (quien las obtiene del fotógrafo).

Esos podrían ser los estándares de archivo del fotógrafo o un estándar establecido hace mucho tiempo entre la agencia y el fotógrafo para ahorrar tiempo de conversión.

Luego, nuestros diseñadores internos los colocan en InDesign para carteles y revistas, o los convierten a RGB para usarlos en el sitio web o en boletines informativos o presentaciones.

Eso me suena bastante sólido. Así es como lo manejamos.

¿No sería una opción mucho más inteligente guardar las imágenes retocadas como PNG (que no tiene pérdidas)?

La compresión y el color son dos cuestiones diferentes. Los archivos TIFF pueden contener diferentes tipos de compresión y Photoshop tiene la capacidad de guardar archivos TIFF con compresión LZW, que no tiene pérdidas. No ofrece el mismo nivel de compresión que JPEG, pero ese es el equilibrio entre calidad y tamaño. Hasta donde yo sé, el jurado aún está deliberando sobre el uso de PNG en forma impresa.

Además, no estoy del todo seguro de si nuestra agencia de diseño utiliza realmente el perfil de prensa que utilizan nuestros impresores porque la agencia se encuentra en un país completamente diferente.

Los países respectivos de la agencia y la prensa no influyen en si su trabajo se imprimirá o no. Una prensa es una prensa es una prensa independientemente de dónde se encuentre. Mi empresa envía libros a India, China y Canadá, así como a nivel nacional (EE. UU.), Pero aún tenemos que revisar nuestros títulos y obtener la bandera ocasional.

Creo que te pierdes una cosa aquí. Es una cosa marginal, pero aún así. ¡Eso es CMYK! = RGB en el espacio de trabajo. Algunos colores son inalcanzables para los RGB que son reproducibles en CMYK y viceversa. La mayoría de las veces, puede enviar sus trabajos en RGB y la administración de color interna de la impresora funcionará bien. Pero hay algunos casos (especialmente en áreas oscuras) en los que los perfiles de la impresora arrojarán resultados extremadamente deficientes. Ahí es cuando desea aprovechar un espacio de trabajo específico, toneladas de su experiencia y cubrir las áreas específicas con la cantidad exacta de pintura. También es bueno no sorprenderse cuando sus "rojos" se irán ... bueno ... a otro lugar). Estoy de acuerdo en que efectivamente está “eludiendo” la gestión del color, pero a veces es imprescindible. A veces es útil hacer trampas manualmente; no se dice que RIP las hará para imágenes rasterizadas.

No me malinterpretes. Me gusta la idea de tener mis imágenes almacenadas usando un modelo de color sólido (ninguno de RGB o CMYK para aclarar las cosas), pero hasta cierto punto en mi flujo de trabajo. No me gusta el bombo publicitario "oye, haz tu diseño una vez, usa un modelo de color, publícalo en todas partes". Eso es simplemente confiar en el "mínimo común denominador" de lo que pueden hacer sus dispositivos de salida. En el área de conversión de color, los CMS son en su mayoría capaces de hacer bien su trabajo, pero ¿y si no lo hacen? ¿Qué cantidad de colores de la gama ha utilizado? ¿Cuál es la intención de reproducción de su impresora? Es bueno saber cuáles son los posibles culpables, qué es "seguro", cuándo las "simplificaciones" son aceptables y por qué.

Por supuesto, es posible y DESEABLE trabajar en cmyk y convertir todas las imágenes a CMYK para impresión offset. Imprima sus pruebas de color a través de un RIP y presione las páginas de verificación a medida que salen de la prensa. Es una gestión adecuada del color en CMYK. Si alguien aquí produce libros de mesa de café de primera calidad para fotógrafos internacionales, lo entendería. Puede llevar CMYK al límite para obtener mejores coincidencias de fotografías en color de edición limitada de bellas artes.


¿Cómo convertir un tiff RGB en pseudocolor con GDAL, etc.? - Sistemas de Información Geográfica

El uso típico se parece a lo siguiente. Tenga en cuenta que los formatos deben registrarse para que las opciones --formats y --format funcionen correctamente.

GeneralCmdLineProcessor

InvGeoTransform

Esta función invertirá un conjunto estándar de 3x2 de coeficientes GeoTransform. Esto convierte la ecuación de píxel a geo a geo a píxel.

Depurar

Las categorías suelen ser un identificador del subsistema que produce el error. Por ejemplo, "GDAL" podría usarse para el núcleo GDAL y "TIFF" para los mensajes del traductor TIFF.

SetErrorHandler

SetErrorHandler

SetErrorHandler

SetCurrentErrorHandlerCatchDebug

PushErrorHandler

PushErrorHandler

Error

El argumento msg_class puede tener el valor gdalconst.CE_Warning que indica que el mensaje es una advertencia informativa, gdalconst.CE_Failure que indica que la acción falló, pero que se utilizarán los mecanismos de recuperación normales o CE_Fatal que significa que ha ocurrido un error fatal y ese Error ( ) no debería regresar.

El comportamiento predeterminado de Error () es informar errores a stderr y abortar () después de informar un error gdalconst.CE_Fatal. Se espera que algunas aplicaciones deseen suprimir los informes de errores y deseen instalar una excepción de C ++ o un enfoque longjmp () para la recuperación sin errores fatales locales.

Independientemente de cómo los manejadores de errores de la aplicación o el manejador de errores predeterminado elijan manejar un error, el número de error y el mensaje se almacenarán para su recuperación con gdal.GetLastErrorNo () y gdal.GetLastErrorMsg ().

GOA2GetAuthorizationURL

GOA2GetRefreshToken

GOA2GetAccessToken

PopErrorHandler

Descarta el controlador de errores actual en la pila de controladores de errores y restaura el que estaba en uso antes de la última llamada a gdal.PushErrorHandler (). Este método no tiene ningún efecto si no hay controladores de errores en la pila de controladores de errores de subprocesos actuales.

ErrorReset

Esto se utiliza normalmente para garantizar que un error del que se ha recuperado no parece estar todavía en juego con funciones de alto nivel.

EscapeString

EscapeString

  • gdalconst.CPLES_BackslashQuotable (0): este esquema convierte una cadena binaria en una forma adecuada para colocarse entre comillas dobles como una constante de cadena. La barra invertida, las comillas, ' 0' y los caracteres de nueva línea se escapan en el estilo C habitual.
  • gdalconst.CPLES_XML (1): este esquema convierte los caracteres '& lt', '& gt' y '& amp' en su equivalente XML / HTML (& ampgt, & amplt y & ampamp) haciendo que una cadena sea segura para incrustar como CDATA dentro de un elemento XML. El ' 0' no se escapa y no debe incluirse en la entrada.
  • gdalconst.CPLES_URL (2): Todo, excepto los caracteres alfanuméricos y el subrayado, se convierte en un porcentaje seguido de una codificación hexadecimal de dos dígitos del carácter (se proporciona un cero inicial si es necesario). Este es el mecanismo que se utiliza para codificar los valores que se pasan en las URL.
  • gdalconst.CPLES_SQL (3): todas las comillas simples se reemplazan por dos comillas simples. Adecuado para su uso al construir valores literales para comandos SQL donde el literal se incluirá entre comillas simples.
  • gdalconst.CPLES_CSV (4): Si los valores contienen comas, comillas dobles o líneas nuevas, se coloca entre comillas dobles y las comillas dobles en el valor se duplican. Adecuado para usar al construir valores de campo para archivos .csv. Tenga en cuenta que gdal.UnescapeString () actualmente no admite este formato, solo gdal.EscapeString (). Consulte cpl_csv.cpp para obtener soporte para el análisis de csv.

GetLastErrorNo

Este es el número de error, no la clase de error.

GetLastErrorType

Esta es la clase de error, no el número de error.

GetLastErrorMsg

Obtiene el último mensaje de error publicado con CPLError (), que no ha sido borrado por gdal.ErrorReset ().

GetErrorCounter

VSIGetLastErrorNo

VSIGetLastErrorMsg

VSIErrorReset

PushFinderLocation

PopFinderLocation

FinderClean

Encontrar archivo

ReadDir

ReadDir

Esta función abstrae el acceso al directorio que contiene. Devuelve una lista de cadenas que contienen los nombres de los archivos y directorios de este directorio.

Tenga en cuenta que no se emite ningún error a través de CPLError () si la ruta del directorio no es válida, aunque se devuelve un valor nulo.

ReadDirRecursive

SetConfigOption

Esas opciones se definen como una pareja (clave, valor). El valor correspondiente a una clave se puede obtener más tarde con el método gdal.GetConfigOption ().

Este mecanismo es similar a las variables de entorno, pero las opciones establecidas con gdal.SetConfigOption () anula, para el punto de vista de gdal.GetConfigOption (), los valores definidos en el entorno.

Si se llama a gdal.SetConfigOption () varias veces con la misma clave, se utilizará el valor proporcionado durante la última llamada.

Las opciones también se pueden pasar en la línea de comando de la mayoría de las utilidades de GDAL con '--config KEY VALUE'. Por ejemplo, ogrinfo --config CPL_DEBUG ON

GetConfigOption

El valor es el valor de una opción (clave, valor) establecida con gdal.SetConfigOption (). Si la opción dada no estaba definida con gdal.SetConfigOption (), intenta encontrarla en las variables de entorno.

GetConfigOption

Igual que a continuación con defaultValue == null

CPLBinaryToHex

CPLHexToBinary

FileFromMemBuffer

El nombre de archivo se puede utilizar con los controladores GDAL y OGR que utilizan la API de archivos virtuales.

Para liberar la memoria asociada con el archivo, debe usar Desvincular (nombre de archivo); de lo contrario, se producirán pérdidas de memoria.

Desconectar

Elimina un objeto de archivo del sistema de archivos. Este método pasa por la virtualización VSIFileHandler y puede funcionar en sistemas de archivos inusuales, como en la memoria.

Análogo de la función unlink () de POSIX.

Desvincular lote

Mkdir

Crea un nuevo directorio con el modo indicado. El modo se ignora en algunas plataformas. Un valor de modo predeterminado razonable sería 0666. Este método pasa por la virtualización VSIFileHandler y puede funcionar en sistemas de archivos inusuales como en la memoria.

Análogo de la función POSIX mkdir ().

Rmdir

Elimina un objeto de directorio del sistema de archivos. En algunos sistemas, el directorio debe estar vacío antes de poder eliminarlo.

Este método pasa por la virtualización VSIFileHandler y puede funcionar en sistemas de archivos inusuales, como en la memoria.

Análogo de la función POSIX rmdir ().

Mkdir Recursivo

RmdirRecursivo

Rebautizar

Cambia el nombre de un objeto de archivo en el sistema de archivos. Debería ser posible cambiar el nombre de un archivo a un nuevo sistema de archivos, pero es más seguro si esta función solo se usa para cambiar el nombre de los archivos que permanecen en el mismo directorio.

Este método pasa por la virtualización VSIFileHandler y puede funcionar en sistemas de archivos inusuales, como en la memoria.

Análogo de la función rename () de POSIX.

GetActualURL

GetSignedURL

GetSignedURL

GetFileSystemsPrefixes

GetFileSystemOptions

ParseCommandLine

GDAL_GCP_GCPX_get

GDAL_GCP_GCPX_set

GDAL_GCP_GCPY_get

GDAL_GCP_GCPY_set

GDAL_GCP_GCPZ_get

GDAL_GCP_GCPZ_set

GDAL_GCP_GCPPixel_get

GDAL_GCP_GCPPixel_set

GDAL_GCP_GCPLine_get

GDAL_GCP_GCPLine_set

GDAL_GCP_Info_get

GDAL_GCP_Info_set

GDAL_GCP_Id_get

GDAL_GCP_Id_set

GCPsToGeoTransform

Dado un conjunto de GCP, realizan un ajuste de primer orden como una geotransformación.

Debido a la imprecisión en los cálculos, el algoritmo de ajuste a menudo devolverá coeficientes de rotación distintos de cero, incluso si se proporcionan entradas perfectamente no rotadas. Se ha implementado un caso especial para las coordenadas de las esquinas dadas en el orden TL, TR, BR, BL. Entonces, cuando use esto para obtener una geotransformación a partir de 4 coordenadas de esquina, páselos en este orden.

GCPsToGeoTransform

Igual que a continuación con bApproxOK == 0

ComputeMedianCutPCT

Esta función implementa un algoritmo de corte medio para calcular una tabla de pseudocolor "óptima" para representar una imagen RGB de entrada. Esta PCT podría usarse con GDALDitherRGB2PCT () para convertir una imagen RGB de 24 bits en una imagen pseudocoloreada de ocho bits.

Este código se basó en el código tiffmedian.c de libtiff (www.libtiff.org) que se basó en un artículo de Paul Heckbert:

Las bandas de entrada roja, verde y azul no necesariamente deben provenir del mismo archivo, pero deben tener el mismo ancho y alto. Se recortarán a 8 bits durante la lectura, por lo que las bandas que no son de ocho bits son generalmente inapropiadas.

ComputeMedianCutPCT

Igual que a continuación con devolución de llamada == null

DitherRGB2PCT

Esta función utiliza el tramado Floyd-Steinberg en el proceso de convertir una imagen RGB de 24 bits en una imagen pseudocoloreada de 8 bits utilizando una tabla de colores proporcionada.

Las bandas de entrada roja, verde y azul no necesariamente deben provenir del mismo archivo, pero deben tener el mismo ancho y alto. Se recortarán a 8 bits durante la lectura, por lo que las bandas que no son de ocho bits son generalmente inapropiadas. Asimismo, la banda hTarget se escribirá con valores de 8 bits y debe coincidir con el ancho y la altura de las bandas de origen.

La tabla de colores no puede tener más de 256 entradas.

DitherRGB2PCT

Igual que a continuación con devolución de llamada == null

ReprojectImage

ReprojectImage

Esta es una función de conveniencia que utiliza la clase GDALWarpOperation para volver a proyectar una imagen desde un origen a un destino. En particular, esta función se encarga de establecer la función de transformación para implementar la reproyección y establecerá por defecto una variedad de otras opciones de deformación.

De forma predeterminada, se transfieren todas las bandas, sin enmascaramiento ni valores sin datos en vigor. No se transfieren metadatos, información de proyección ni tablas de colores al archivo de salida.

ReprojectImage

Igual que a continuación con devolución de llamada == null.

ReprojectImage

Igual que a continuación con maxError == 0.0 y devolución de llamada == null.

ReprojectImage

Igual que a continuación con warpMemoryLimit == 0.0, maxError == 0.0 y callback == null.

ReprojectImage

Igual que a continuación con resampleAlg == gdalconst.GRA_NearestNeighbour, warpMemoryLimit == 0.0, maxError == 0.0 y callback == null.

ReprojectImage

Igual que a continuación con dst_wkt == null, resampleAlg == gdalconst.GRA_NearestNeighbour, warpMemoryLimit == 0.0, maxError == 0.0 y callback == null.

ReprojectImage

Igual que a continuación con src_wkt == null, dst_wkt == null, resampleAlg == gdalconst.GRA_NearestNeighbour, warpMemoryLimit == 0.0, maxError == 0.0 y callback == null.

ComputeProximity

Las siguientes opciones se utilizan para definir el comportamiento de la función. De forma predeterminada, todos los píxeles distintos de cero en srcBand se considerarán el "objetivo" y todas las proximidades se calcularán en píxeles. Tenga en cuenta que los píxeles de destino se establecen en el valor correspondiente a una distancia de cero.

Opciones: VALORES = n [, n] * Una lista de valores de píxeles de destino para medir la distancia. Si no se proporciona esta opción, la proximidad se calculará a partir de valores de píxeles distintos de cero. Actualmente, los valores de los píxeles se procesan internamente como números enteros. DISTUNITS = [PIXEL] / GEO Indica si las distancias se calcularán en unidades de píxeles o en unidades georreferenciadas. El valor predeterminado son las unidades de píxeles. Esto también determina la interpretación de MAXDIST. DISTR.MÁX = n La distancia máxima de búsqueda. Las distancias de proximidad superiores a este valor no se calcularán. En su lugar, los píxeles de salida se establecerán en un valor nodata. NODATA = n El valor NODATA que se utilizará en la banda de salida para los píxeles que están más allá de MAXDIST. Si no se proporciona, se consultará a hProximityBand para obtener un valor de nodata. Si no se encuentra uno, se utilizará 65535. FIXED_BUF_VAL = n Si se establece esta opción, todos los píxeles dentro de la retención de subprocesos MAXDIST se establecen en este valor fijo en lugar de en una distancia de proximidad.


1 respuesta 1

De acuerdo con la documentación de ffmpeg, el códec H.264 tiene un modo sin pérdidas usando -crf 0.

No está seguro de la velocidad de fotogramas, por lo que no puedo ofrecer ningún consejo allí, pero primero debe probar ffmpeg -i * .tiff -crf 0 OUT.mp4, luego compare el tamaño de todas las imágenes con el tamaño de la final video. Si es más o menos lo mismo, probablemente sea lo suficientemente bueno.

Si realmente necesita una salida sin pérdida absoluta, es mejor que ejecute un script CLI para mostrar una presentación de diapositivas (muy rápida) de las imágenes, aunque es posible que su hardware no lo admita para imágenes grandes y es más una suposición salvaje que una práctica. solución.


Al exportar, los archivos NITF siempre se escriben como NITF 2.1 con una imagen y sin otras capas auxiliares. Las imágenes están descomprimidas de forma predeterminada, pero también están disponibles las compresiones JPEG y JPEG2000. La georreferenciación solo se puede escribir para imágenes que utilizan un sistema de coordenadas geográficas o una proyección UTM WGS84. Las coordenadas se tratan implícitamente como WGS84 incluso si en realidad están en un sistema de coordenadas geográficas diferente. Se pueden escribir tablas de pseudo-color para imágenes de 8 bits.

Además de la API CreateCopy () orientada a la exportación, también es posible crear un archivo NITF en blanco usando Create () y escribir imágenes bajo demanda. Sin embargo, no se admite el uso de esta metodología para escribir tablas de pseudocolor y georreferenciación a menos que se proporcionen las opciones de creación de IREP e ICORDS adecuadas.

La mayoría de los campos de seguridad y metadatos de encabezado de archivo, encabezado de imágenes se pueden configurar con los opciones de creación (aunque se informan como elementos de metadatos, pero no deben establecerse como metadatos). Por ejemplo, configurar "FTITLE = Imagen de silo de misiles abandonado al suroeste de Karsk" en la lista de opciones de creación daría como resultado la configuración del campo FTITLE en el encabezado del archivo NITF. Utilice los nombres de campo oficiales del documento de especificación NITF, no coloque el prefijo “NITF_” que se informa cuando se pregunta a la lista de metadatos.

IC = NC / C3 / M3 / C8 : Establece el método de compresión.

NC es el valor predeterminado y significa que no hay compresión.

C3 significa compresión JPEG y solo está disponible para el método CreateCopy (). Se pueden utilizar las opciones de creación específicas de QUALITY y PROGRESSIVE JPEG. Consulte el controlador de formato de archivo JPEG - JPEG JFIF. Se pueden escribir imágenes de bloques múltiples.

M3 es una variación de C3. La única diferencia es que se escribe un mapa de bloques, lo que permite una búsqueda rápida de cualquier bloque.

C8 significa compresión JPEG2000 (un bloque) y está disponible para los métodos CreateCopy () y / o Create (). Consulte el párrafo siguiente para conocer las especificidades.

NUMI = n : Número de imágenes. Predeterminado = 1. Esta opción solo es compatible con IC = NC (imágenes sin comprimir).

ICORDES = G / D / N / S: Configure en "G" para asegurarse de que el espacio se reservará para las coordenadas geográficas de las esquinas (en DMS) que se establecerán más tarde mediante SetGeoTransform (), configure en "D" para las coordenadas geográficas en grados decimales, configure en "N" para UTM WGS84 proyección en el hemisferio norte o en “S” para la proyección UTM WGS84 en el hemisferio sur (solo se necesita para el método Create (), no CreateCopy ()). Si crea () un nuevo archivo NITF y ha especificado "N" o "S" para ICORDS, debe llamar más tarde al método SetProjection con un UTM SRS coherente para establecer el número de zona UTM (de lo contrario, se establecerá de forma predeterminada en la zona 0) .

FHDR: La versión del archivo se puede seleccionar aunque actualmente las únicas dos variaciones admitidas son “NITF02.10” (el predeterminado) y “NSIF01.00”.

IREP: Ajústelo en “RGB / LUT” para reservar espacio para una tabla de colores para cada banda de salida. (Solo se necesita para el método Create (), no CreateCopy ()).

IREPBAND: Lista separada por comas de IREPBAND de banda en orden de banda.

ISUBCAT: Lista separada por comas de ISUBCAT de banda en orden de banda.

LUT_SIZE: Configure para controlar el tamaño de las tablas de pseudocolor para las bandas RGB / LUT. Se asume un valor de 256 si no está presente. (Solo se necesita para el método Create (), no CreateCopy ()).

BLOCKXSIZE = n: Establece el ancho del bloque.

BLOCKYSIZE = n: Establece la altura del bloque.

BLOQUEO _ * =: Si se proporciona un conjunto completo de opciones de BLOCKA con exactamente la misma organización que los metadatos NITF_BLOCKA informados al leer un archivo NITF con BLOCKA TRE, se creará un archivo con BLOCKA TRE.

TRE = nombre-tre = contenido-tre: Se pueden utilizar una o más opciones de creación de TRE siempre que se escriban TRE arbitrarios definidos por el usuario en el encabezado de la imagen. El nombre de tre debe tener un máximo de seis caracteres, y el contenido de tre debe tener una "barra invertida de escape" si contiene barras invertidas o cero bytes. El argumento tiene el mismo formato que se devuelve en el dominio de metadatos TRE al leer.

ARCHIVO_TRE = nombre-tre = contenido-tre: Similar a las opciones anteriores, excepto que los TRE se escriben en el encabezado del archivo, en lugar del encabezado de la imagen.

DES = nombre-des = contenido-des: Se pueden proporcionar una o más opciones de creación de DES para escribir DES arbitrarios definidos por el usuario en el archivo NITF. El des-name debe tener un máximo de 25 caracteres, y el des-contenido debe tener una "barra invertida de escape" si contiene barras invertidas o cero bytes, como en CPLEscapeString (str, -1, CPLES_BackslashQuotable). El contenido debe contener campos DES estándar, comenzando con DESVER (Ver MIL-STD-2500C). Los DES no se copian actualmente en CreateCopy (), pero se pueden agregar explícitamente como con Create ().

SDE_TRE = SÍ / NO: Escriba GEOLOB y GEOPSB TRE para obtener una georreferenciación más precisa. Esto está limitado a SRS geográfico y a CreateCopy () por ahora.

RPC00B = SÍ / NO: (GDAL & gt = 2.2.0) Escriba RPC00B TRE, de un origen RPC00B TRE si existe (conversión de NITF a NITF), o de valores encontrados en el dominio de metadatos de RPC. Esto solo lo tiene en cuenta CreateCopy () por ahora. Tenga en cuenta que el formato NITF RPC00B utiliza números codificados en ASCII de previsión limitada. Por defecto a SÍ.

RPCTXT = SÍ / NO: (GDAL & gt = 2.2.0) Si se deben escribir metadatos RPC en un archivo _rpc.txt externo. Esto puede resultar útil ya que los RPC00B TRE internos tienen una precisión limitada. Esto solo lo tiene en cuenta CreateCopy () por ahora. Por defecto a NO.

USE_SRC_NITF_METADATA = SÍ / NO: (GDAL & gt = 2.3.0) Si se deben usar elementos de metadatos NITF_xxx y segmentos TRE del conjunto de datos de entrada. Puede que sea necesario establecer esta opción en NO si se cambia la georreferenciación del archivo de entrada. Por defecto a SÍ.


2 respuestas 2

TIFF es un formato de mapa de bits, como parece comprender.

Hay dos formas de convertir mapas de bits en gráficos vectoriales:

Manual: literalmente significa que lo redibujas por completo

Rastreo: uso de métodos matemáticos avanzados para crear rutas vectoriales, áreas, etc. sobre la imagen de mapa de bits.

El rastreo NO es un proceso trivial. Es posible que necesite muchos ajustes para obtener un resultado significativo. Depende mucho de la imagen de origen, tanto de la calidad como del carácter de su contenido.

Aquí hay un tutorial básico en Inkscape: Tutorial de Inkscape: Seguimiento de mapas de bits. U otro: CÓMO VECTORIZAR EN INKSCAPE. Creo que puedes buscar en Google muchos más.

EDITAR basado en una nueva imagen:

a) Trazar ambas imágenes será bastante complicado. No recomendaría eso, especialmente en caso de que sus gráficos de entrada no puedan ser de mucho resolución más alta. Procesar imágenes de alta resolución y jugar con los ajustes puede llevar mucho tiempo.

b) La imagen A es de aproximadamente 10 minutos de trabajo para redibujar completamente para alguien que tenga un poco de experiencia con Inkscape (línea, círculo, hexágono, texto, ajuste, colores, capas). Las imágenes de este carácter genérico también tienen patrones reproducibles (ver posiciones de nodos en red hexagonal) que aceleran dramáticamente el proceso. Dependiendo de la complejidad de su imagen real, si es factible, pensaría en dedicar algo de tiempo a aprender los conceptos básicos mencionados anteriormente y dibujarla. El resultado sera limpio y el tiempo empleado de manera eficiente. Lo más probable es que recicle sus nuevas habilidades. La imagen B se puede hacer en Inkscape, pero la estructura hexagonal violeta y el trazo verde requieren habilidades de Inkscape un poco más avanzadas.

c) Compile dos métodos juntos: puede rastrear y eliminar todo lo que parezca desordenado y dibujarlo manualmente. En particular texto, líneas cruzadas, líneas discontinuas, etc. Dejaría solo cosas, que son difíciles de dibujar rápidamente.

d) Si necesita figuras en 3D como en el interior, puede hacerlo en Inkscape. Pero podría ser más fácil y el resultado podría verse mejor si se realiza en un entorno 3D, como FreeCAD, SketchUp o Blender. Luego renderizado y colocado correctamente en Inkscape y completado con otros gráficos. Pero eso es fácil para mí, pero no factible, si no tienes experiencia con este tipo de software y conversiones gráficas.


PELEA

TIFF (abreviatura de Tagged Image File Format) es un formato de archivo estándar de la industria diseñado para manejar imágenes de mapa de bits y ráster. Estos archivos TIFF son un formato de archivo común que se usa para imágenes de alta calidad, especialmente las que se usan en diseño gráfico. Son muy flexibles e independientes de la plataforma, por lo que se pueden utilizar en varios sistemas operativos como Mac y Windows.

Extensión de archivo: .tiff, .tif
MÍMICA: imagen / tif, imagen / x-tif, imagen / tiff, imagen / x-tiff, aplicación / tif, aplicación / x-tif, aplicación / tiff, aplicación / x-tiff

El formato de archivo TIFF fue diseñado conjuntamente por Aldus y Microsoft junto con algunos fabricantes de escáneres en 1986. Originalmente, fueron diseñados para admitir solo imágenes en blanco y negro, pero la actualización en 1988 agregó una paleta de colores. Ahora, los archivos TIFF se pueden guardar en una variedad de formatos de color y pueden manejar profundidades de color que van desde 1 bit hasta 24 bits.

Espacios de color:Line-art (blanco y negro puro), pseudocolor, de 1 bit a 8 bits (también llamado paleta de colores), escala de grises, CMYK, RGB, YCbCr, CIELab, etc.

El formato TIFF se utiliza para mapas de bits de imágenes fijas que se almacenan en forma de campos etiquetados. Estas etiquetas indican la geometría simple del tamaño de la imagen, define cómo se organizan los datos y las diversas opciones de compresión de la imagen. Esta opción permite al usuario incluir todo tipo de formatos de imagen en el archivo.

Técnicas de compresión

Los TIFF a menudo utilizan una técnica de compresión sin pérdidas para mantener la integridad y claridad de la imagen. A menudo admite numerosos algoritmos de compresión. Algunas de las técnicas más utilizadas son:

  • PackBits
  • Lempel-Ziv-Welch (LZW), preferido principalmente para imágenes en escala de grises o en color
  • CCITT Fax group 3 & amp 4, utilizado principalmente para imágenes line-art, especialmente para datos filtrados provenientes de una aplicación RIP o copydot

Usos de archivos TIFF

Los archivos TIFF se utilizan comúnmente para el diseño de impresión y la autoedición. Esto se debe a que pueden almacenar fácilmente incluso las imágenes grandes y de alta calidad, como las fotos. También se encuentran en varias otras áreas, como diseño asistido por computadora (CAD), transmisión de fax, imágenes médicas, fotografía profesional, etc. TIFF guarda información detallada de la imagen con cada píxel, lo que da como resultado un archivo de datos relativamente grande. Dado que estos archivos TIFF tienen gráficos de alta profundidad de color (32 bits), se utilizan ampliamente en aplicaciones de manipulación de imágenes.

Tamaño máximo de archivo:4 GB de datos ráster en forma comprimida, ya que incluso pueden ser datos comprimidos, y el tamaño total del archivo depende del tamaño de compresión

Importancia del formato TIFF

  • El formato de archivo de imagen TIFF se basa en el método de compresión sin pérdida, lo que permite al usuario almacenar la imagen sin perder ni un porcentaje de sus datos originales.
  • Incluso si una imagen en formato TIFF se somete a múltiples ediciones, los parámetros de calidad de la imagen no se alterarán y permanecerán iguales, lo que la hace preferible a los otros formatos.
  • Los archivos TIFF se pueden guardar incluso sin compresión, o se pueden comprimir a un tamaño de archivo más bajo
  • Ofrece un alto nivel de flexibilidad para permitir a los usuarios manejar imágenes y datos dentro de un solo archivo.Por ejemplo, un TIFF puede almacenar imágenes JPEG y RLE comprimidas o una ruta de recorte basada en vectores que contiene recortes, contornos, marcos de imagen, etc.

Si en caso de que haya perdido o eliminado sus imágenes TIFF favoritas, haga clic aquí para conocer las instrucciones para realizar la recuperación de imágenes TIFF fácilmente.


4 respuestas 4

If everything is working correctly, the difference should be subtle and you shouldn't generally notice a big shift.

You may be working on a monitor which is not capable of rendering the whole Adobe RGB gamut. In this case, out-of-gamut colors are clipped or approximated (perhaps poorly). When you convert to sRGB, the colors are mapped more correctly and can be actually rendered, and you get the shift. In other words, the sRGB version was "right" all along — you just weren't seeing it.

This is one reason I recommend that most people work in sRGB even though bigger color spaces sound better.

The other possibility, if you're working in a nicely color-calibrated setup, is that your image lo hace have a lot of tones not represented in sRGB and losing them lo hace happen to make a big difference in the scene. In that case, there's nothing you can really do, although if web and sRGB are a large portion of your display audience you may want to take the time to do sRGB-specific color work.

This is kind of web-browser specific, but take a look at Microsoft's color management test page, and in particular the "image test" link. In a properly-configured system, as you click between Adobe RGB, sRGB, and ProPhoto (click between the or thises), you'll see only very subtle changes. If your environment isn't set up correctly (in the browser test, including if you don't have proper browser support), the Adobe RGB and ProPhoto examples will look horribly washed out and wrong. (Viewing the page on my iPhone provides a great example of a browser with no proper color profile support.)


Conversion and georeferencing of maps for ttMaps

Before using a map with ttMaps, make sure you have the right! Some publishers of paper maps prohibit you to scan them, and vendors of maps on CDROM impose very restrictive licenses, such as the ban on the use of maps with other software than that provided by the vendor.

Maps format

The format that was chosen for ttMaps is the ECW format, developed by the company Er Mapper, recently acquired by ERDAS.. Why use such a choice? This format has many advantages for mapping applications:

  • Excellent lossless compression ratio, better then that of JPEG
  • Rapid access to image file, at any zoom level
  • Ability to decompress a portion of the image without decompressing the entire file

It is a format chosen by the IGN to deliver maps and aerial photographs. It is therefore possible to directly use the files from IGN. See, for example, screenshots some of which were produced with samples of IGN maps.

Calibrating maps

Before you start converting the maps to ECW format, you must make sure they are calibrated (georeferenced), therefore you need to know:

  • the datum
  • the projection
  • the geographic extents, ie :
    • either the coordinates of the upper left corner and the pixels sizes
    • either the coordinates of the upper left corner and of the lower right corner

    In general, the datum and projection are shown in the legend text of paper maps. If you do not know the geographical extents, you must first calibrate the map. I will not explain in detail how to do this, because there are many programs available, such as:

    Tools for conversion to ECW format

    • Er Mapper software (for Microsoft Windows), of which you can download a trial version (30 day trial) at http://www.erdas.com/Products/ERDASProductInformation/tabid/84/currentid/1052/default.aspx .
    • GDAL free software, available for several systems :
      • Windows : Install the GDAL package. Binaries are available on the GisInternals web site.
      • Linux : GDAL is available in most distributions (choose a package with ECW support)
      • Mac OS X : On the page http://www.kyngchaos.com/software:frameworks, download the frameworks GDAL, UnixImageIO, GEOS 3, SQLite3 and PROJ 4.6, together with the ECW plugin. Install them. In a console, type: export PATH=/Library/Frameworks/GDAL.framework/Programs:$PATH

      Conversion of maps with GDAL

      Here are three examples of using GDAL to convert the maps to the ECW format.

      Georeferenced maps

      Some file formats, such as GeoTIFF, include georeferencing data. For example, download the Sample GeoTiff file. After unpacking the archive, you can use the gdalinfo command to display information about the file:

      This information allows us to know the reference system (here WGS84) and the projection used (here, UTM Zone 10 North). Unfortunately, Er Mapper uses its own names to designate the reference systems and projections. Before making the conversion, you must find these names.

      • For France, there is a paper (in French): Syst mes de projections dans Er Mapper et Mapinfo.
      • For the rest of the world, you can read this document: Supported map projections and datums
      • If you installed the Er Mapper software, you can also browse the files in the GDT_DATA folder, especially the files datum.dat and project.dat .

      For the image above, the datum is WGS84 and the projection is NUTM10. The command to use to convert the file to ECW format is:

      The parameter TARGET=90 indicates that you wish to obtain a compression ratio of the image equal to 90% (Change the rate depending on the type of image).

      Note : Avoid using the same base name for input file and output file, otherwise you may encounter some problems with the current version of gdal_translate.

      Conversion of maps shipped with a world file

      Some files, such as TIFF, JPG or PNG may be accompanied by a world file containing the geographical extents of the map. These files have respective extensions .TFW, .JGW and .PGW .

      One example is the SCAN1000 map of IGN, which is freely available on the IGN site.

      Download for example SCAN 1000 Corsica (Version Lambert II extended) and unzip the archive. The useful files are COR_0000.TIF (TIFF image) and COR_0000.TFW, which contains the coordinates and size of pixels. The gdalinfo command shows that this file uses a color palette:

      The gdal_translate utility is not capable of converting a file based on a color palette to a file in 16 million of colors. Fortunately, a conversion utility ( pct2rgb.py ) comes with the GDAL package. You must therefore begin doing this conversion:

      The website of the IGN tells us that this map uses the NTF reference system (New Triangulation French), with the Lambert projection II extended. The conversion command will be as follows:

      However, we note that the map is surrounded by an unnecessary white border. It is possible to convert only a part of the map, using the -srcwin option of the gdal_translate command:

      For the Linux users (or Windows with CygWin), here's a script that converts the SCAN100 map.

      Conversion of a map without georeferencing data

      Download for example the image BlueMarble. The coordinates of the upper left corner are -180 , 90 and those of the lower right corner are 180 ,-90 . The datum is WGS84, and the projection is GEODETIC.

      The command you can use for the conversion is:

      Georeferencing of an ECW file

      If you have a file in ECW format not containing the whole georeferencing information (datum, projection and extents), it is possible to add this information without having to decompress / recompress the file with gdal_translate. To do this, you may use the tool ECW Header Editor , that you can download at ERDAS.

      To georeference the image, you must proceed as follows:

      • Install the software "ECW Header Editor"
      • Launch the software "ECW Header Editor"
      • Open the ECW file through File menu - Open
      • Fill in the Datum and Projection
      • Give the coordinates of the upper left corner of the image and size of pixels
      • Save the image through the File menu - Save.

      It is also possible to use gdal_edit , that works on Windows, MacOS and Linux.

      Georeferencing a file already calibrated for OziExplorer

      There are lots of maps for OziExplorer. Thus, we are going to show step by step, on three practical examples, how to convert your maps to ECW format.

      How to check if the calibration file is correct

      Often it occurs that calibration files for Oziexplorer do not contain the correct information on the projection and the datum. This is because some people use OziExplorer without sufficient knowledge, sometimes without even taking the time to try to understand the datums and projections.

      There is a simple test to be carried out on a calibration file. The principle is to verify that the edges of the map are parallel to the axes of the projection.

      To start, display the .map file contents (it contains plain text). In general, the file contains the coordinates of four control points, most often the four corners of the map. To ensure that the map is aligned with the axes of the projection, you just have to check that:

      • The left corner have the same eastings
      • The right corners have the same eastings
      • The upper corners have the same northings
      • The bottom corners have the same northings

      Ejemplo 1

      Punto Easting Northing
      Coordinates of the upper left corner 0 2700000
      Coordinates of the upper right corner 1100000 2700000
      Coordinates of the lower right corner 1100000 1600000
      Coordinates of the lower left corner 0 1600000

      In this first example, we see that the map is well positioned. En efecto:

      • The easting of the left edge is 0
      • The easting of the right edge is 11000000
      • The northing of the upper edge is 2700000
      • The northing of the lower edge is 1600000

      Ejemplo 2

      Punto Easting Northing
      Coordinates of the upper left corner 4.269040 45.882684
      Coordinates of the upper right corner 4.912734 45.870023
      Coordinates of the lower right corner 4.891744 45.422152
      Coordinates of the lower left corner 4.253713 45.434813

      In this second example, we see that the map is misaligned. En efecto:

      • The left edge of the map passes through points of eastings 4.269040 and 4.253713: it is tilted
      • The right egde of the map passes through points of eastings 4.912734 and 4.891744: it is tilted
      • The upper edge of the map passes through points of northings 45.882684 and 45.870023: it is tilted
      • The lower edge of the map passes through points of northings 45.422152 and 45.434813: it is tilted

      Note : This simple method is able to prove that the projection indicated in the .map file is incorrect. It does not check that the projection, datum and coordinates are correct, this should be done by displaying known points in ttMaps.

      Tutorial n 1 : Conversion of a french map coming with a correct calibration file

      Here is an example, with a .map file found on a forum:

      .map file lines Descripción
      Map Datum,NTF France Dato
      Map Projection,(II) France Zone II,PolyCal,No,AutoCalOnly,No,BSBUseWPX,No Projection
      Image Width,44000 Image width, in pixels
      Image Height,44000 Image height, en pixels
      Point01,xy, 0, 0,in, deg, , ,N, , ,E, grid, , 0, 2700000,N Coordinates of the upper left corner
      Point02,xy,44000, 0,in, deg, , ,N, , ,E, grid, , 1100000, 2700000,N Coordinates of the upper right corner
      Point03,xy,44000,44000,in, deg, , ,N, , ,E, grid, , 1100000, 1600000,N Coordinates of the lower right corner
      Point04,xy, 0,44000,in, deg, , ,N, , ,E, grid, , 0, 1600000,N Coordinates of the lower left corner

      This table contains all the information necessary to create a georeferenced ECW file.

      • The first line gives the datum: New Triangulation French (ErMapper code is NTF)
      • The second line gives the projection: Lambert France Zone II (Ermapper code is LM2FRANC)
      • The fifth line gives the coordinates of the upper left corner: (0, 2700000)
      • With the coordinates of the lower right corner (1100000, 1600000) and the number of pixels, you can deduce the size of pixels:
        • Horizontal (1100000 - 0) / 44000 = 25 m
        • Vertical: (2700000 - 1600000) / 44000 = 25 m

        The easiest way to make the conversion is to use GDAL:

        Note : The LARGE_OK=YES option here is essential, because the size of the map (44000 x 44000 x 3 = 5808000000 bytes) exceeds 500 Mb.

        Tutorial n 2 : Conversion of a french map coming with an incorrect calibration file

        .map file lines Descripción
        WGS 84,WGS 84, 0.0000, 0.0000,WGS 84 Dato
        Map Projection,Latitude/Longitude,PolyCal,No,AutoCalOnly,No,BSBUseWPX,Yes Projection
        Image Width,5000 Image width, in pixels
        Image Height,5000 Image height, en pixels
        Point01,xy, 0, 0,in, deg, 45, 52.96104,N, 4, 16.1424,E, grid, , , ,N Coordinates of the upper left corner (in degrees + decimale minutes)
        Point02,xy, 5000, 0,in, deg, 45, 52.20138,N, 4, 54.76404,E, grid, , , ,N Coordinates of the upper right corner (in degrees + decimale minutes)
        Point03,xy, 5000, 5000,in, deg, 45, 25.32912,N, 4, 53.50464,E, grid, , , ,N Coordinates of the lower right corner (in degrees + decimale minutes)
        Point04,xy, 0, 5000,in, deg, 45, 26.08878,N, 4, 15.22278,E, grid, , , ,N Coordinates of the lower left corner (in degrees + decimale minutes)

        We see immediately that the map is not aligned with the WGS84 projection. The main challenge will be to find the correct projection and datum.

        As it is a French map, it's not very difficult: Most french maps use the NTF datum and the extented Lambert II projection (at the exception of some maps of Corsica that use the Lambert IV projection).

        We'll check that by converting the coordinates of the four corners of the map into NTF/extented Lambert II. There are many softwares to convert coordinates, use whatever you prefer.

        Puntos Longitude (WGS84) Latitude (WGS84) X (Lambert IIe) Y (Lambert IIe)
        Upper left corner 4.269040 45.882684 750000.06 2099889.00
        Upper right corner 4.912734 45.870023 799993.98 2099915.04
        Lower right corner 4.891744 45.422152 799982.76 2050105.46
        Lower left corner 4.253713 45.434813 750024.37 2050092.08

        This map has probably been calibrated manually, and there are errors of a few tens of meters. After rounding results, we get:

        Puntos X (Lambert IIe) Y (Lambert IIe)
        Upper left corner 750000 2100000
        Upper right corner 800000 2100000
        Lower right corner 800000 2050000
        Lower left corner 750000 2050000

        So we see that the map is well aligned with respect to the axes of the projection NTF/extended Lambert II, and we can now convert it:

        Note : The LARGE_OK=YES option is not useful, because the size of the map (5000 x 5000 x 3 = 75000000 bytes) does not exceed 500 MB

        Tutorial n 3 : Conversion of an english map coming with a correct calibration file

        To understand this example, it is necessary to know the reference system used in the United Kingdom. Read for example http://en.wikipedia.org/wiki/British_national_grid_reference_system.

        .map file lines Descripción
        Ord Srvy Grt Britn,WGS 84, 0.0000, 0.0000,WGS 84 Dato
        Map Projection,(BNG) British National Grid,PolyCal,No,AutoCalOnly,No,BSBUseWPX,No Projection
        IWH,Map Image Width/Height,32704,32576 Taille de l'image, en pixels
        Point01,xy, 200, 128,in, deg, , ,N, , ,W, grid, HV, 01000, 00000,N
        Point02,xy,32400, 128,in, deg, , ,N, , ,W, grid, HW, 62000, 00000,N
        Point03,xy,32400,32328,in, deg, , ,N, , ,W, grid, NG, 62000, 39000,N
        Point04,xy, 200,32328,in, deg, , ,N, , ,W, grid, NF, 01000, 39000,N

        This conversion is more complex than previous ones:

        • First difficulty: the coordinates use a system of letters + numbers, useless with most software.
        • Second difficulty: the coordinates given by the .map file do not correspond to the corners of the map.

        We will begin by converting the coordinates from letters + numbers to fully numerical coordinates. For that, it is enough to know that the squares measure 100km aside and that the reference is the southwest corner of the SV square (see map on Wikipedia). We deduce the following table:

        Cuadrado X Offset Y Offset
        HV 0 1000 kilometros
        HW 100 kilometros 1000 kilometros
        NG 100 kilometros 800 km
        NF 0 kilometros 800 km

        that allows us to calculate the coordinates of the four control points:

        Control Point of reference Easting Northing
        Point01 1000 1000000
        Point02 162000 1000000
        Point03 162000 839000
        Point04 1000 839000

        We note in passing that the map is well aligned with respect to the axes of the projection.

        Now calculate the coordinates of the upper left corner and lower right corner of the map.


        Ver el vídeo: Converting RGB to CMYK in Photoshop CC