Data
Formats for structured data exchange and storage, scientific arrays, machine learning, genomics, point clouds and positioning.
About this category
Apache Arrow IPCApache Arrow provides a columnar data format and libraries; Arrow IPC serializes that data for exchange between processes and applications. The file format commonly uses .arrow and supports random access to record batches through its footer. The stream format commonly uses .arrows and delivers messages in sequence. Feather V2 is a name for files based on the Arrow IPC file format.AvroApache Avro serializes records according to a schema that can be expressed in JSON. Its types include records, arrays, maps, and unions; readers and writers need compatible schemas.BAMBAM (Binary Alignment/Map) is the binary representation of SAM alignment data defined by the SAMv1 specification. BAM is normally compressed in BGZF blocks; this block structure supports indexed access to regions. It can store reference headers, read names, FLAG, CIGAR, positions, sequence qualities, and tags, and may include unmapped reads. Coordinate-sorted BAM can be paired with an index such as BAI or CSI. BAM is suited to machine processing, but not direct reading; reference identity and index consistency matter.BEDBED is text listing chromosome, start and end. Starts are zero-based and the end is excluded. It does not store sequence itself or per-base quality.bedGraphbedGraph is text with chromosome, start, end and numeric value. Coordinates are zero-based and end-exclusive. Intervals may carry positive or negative integer or real values.bigBedbigBed is an indexed binary format made from BED-type data. Compatible browsers can read selected regions. It is not simply a gzip-compressed BED file.bigWigbigWig is indexed binary storage for genomic values. It can be created from WIG or bedGraph; compatible tools access selected regions. Its data role differs from bigBed.BSONBSON (Binary JSON) is a binary serialization format for documents with a JSON-like structure. It also supports types that standard JSON does not, including dates, binary data, and ObjectId. MongoDB uses it widely, but BSON is not ordinary JSON text and requires a BSON-aware driver or tool.BUFRBUFR (Binary Universal Form for the Representation of meteorological data; WMO FM 94) is a binary format for encoding and exchanging observations with table-driven descriptors. Messages contain sections for identification, data description, and data; descriptor sequences define how values are represented and interpreted. Check the edition and master or local tables.CBORCBOR (Concise Binary Object Representation) is an IETF standard for encoding data items such as numbers, strings, arrays, and maps in binary. It is designed to support compact implementations and messages while remaining extensible, and it can represent JSON-like data. It is not a text format, so reading and writing it requires a CBOR-aware tool or library.CRAMCRAM stores sequencing reads and alignments using encodings that can exploit differences from a reference sequence, often achieving greater compression than BAM. The specification supports both lossless and lossy preservation strategies and does not prescribe which data must be retained. A .cram extension alone therefore cannot confirm whether base qualities or tags were preserved; check the creating tool and settings. Some files or workflows need an exact external reference to decode, while references can also be embedded. CRAI indexes support regional access.DICOMDICOM is a standard for storing and exchanging medical images and related information. A Part 10 file, commonly named with the .dcm extension, contains file meta information followed by a data set representing one SOP Instance. It may include image pixels plus examination, equipment, or patient attributes. Pixel encoding and compression depend on the Transfer Syntax, so DICOM is more than an ordinary image file.E57E57 exchanges point data from 3D imaging systems. ASTM's public abstract says it can store 3D points, attributes such as color or intensity, and photographs obtained by a 3D imaging system; the file combines binary and XML data. It is not merely another LAS/LAZ extension because scan-related imagery can also be exchanged..envA .env file is a conventional text file for writing environment-variable names and values for compatible applications and development tools. There is no single universal specification: quoting, comments, variable expansion, and precedence over existing environment variables depend on the loader.FASTAFASTA is a text format with a definition line starting with > followed by sequence data. This article covers nucleotide and reference sequences. FASTA alone contains no per-base quality scores.FASTQFASTQ is a widely used text format that pairs sequencer read sequences with per-base quality scores. A common record has an identifier beginning with `@`, a sequence, a `+` separator, and a quality string whose length matches the sequence. FASTQ has no single formal specification, and incompatible quality encodings exist, including Sanger Phred+33 and historical Solexa/Illumina variants. Files commonly use `.fastq` or `.fq` and may be externally compressed, for example with gzip. FASTQ usually stores reads before alignment; it does not serve the same role as SAM/BAM alignment records with reference positions.FITFIT (.fit) is a binary format for storing and sharing data from sports, fitness, and health devices. It can contain messages for activities, sensor measurements, events, workouts, and courses. Which fields an app can read depends on the FIT profile and the receiving software; decoding may require the FIT SDK.FITSFITS (Flexible Image Transport System) is a standard used mainly in astronomy to store and exchange scientific data. It concatenates Header/Data Units (HDUs), each containing a header and data, so one file can hold image arrays, spectra, and ASCII or binary tables. Headers use 80-character cards, and HDU boundaries are padded to 2880-byte blocks.FlatGeobufFlatGeobuf is a binary geographic feature format based on FlatBuffers. It contains a header, an optional spatial index and feature data. A .fgb file holds a single layer.GeoJSONGeoJSON represents geographic features and geometry in JSON. Coordinates use longitude before latitude under the standard coordinate system.GeoPackageGeoPackage (.gpkg) is an SQLite database file that stores geospatial data under the OGC GeoPackage standard. It can hold vector features, raster map tiles at multiple zoom levels, and non-spatial attributes in one file, including for offline and mobile use. An SQLite file is not automatically a GeoPackage: it must follow the standard's schema and requirements.GeoParquetGeoParquet adds geometry-column and geographic metadata conventions to Parquet. This article covers specification 1.1.0. A .parquet extension alone does not prove conformance.GeoTIFFGeoTIFF specifies how geographic reference information is stored in TIFF imagery. Reserved tags describe how raster pixels map to geographic or projected coordinates and may identify a coordinate reference system. Image and compression choices vary as in TIFF; the extension alone cannot confirm georeferencing.GFF3GFF3 is an annotation format with nine tab-separated columns. Start and end are one-based and inclusive. Attributes such as ID and Parent describe relationships.GGUFGGUF is a binary container designed for GGML and compatible inference runtimes. Its header contains a format version, tensor descriptions, and key-value metadata; tensor data follows. It is widely used for local inference with llama.cpp-family tools, but the format alone does not guarantee support for every runtime or architecture. The extension also does not indicate whether a model is quantized..gitignoreA .gitignore file is a text file of patterns that tell Git to ignore paths that are not already tracked. Git applies patterns from .gitignore files and other exclude sources according to precedence rules. Adding a pattern does not stop Git tracking a file that is already in the index.GMLGML is an OGC standard for expressing geographic geometry and properties in XML. Application schemas define domain-specific features.GPXGPX (.gpx) is an XML format for exchanging GPS data between apps and web services. It distinguishes waypoints (locations), routes (planned paths), and tracks (recorded paths). GPX 1.1 uses WGS 84 for coordinates. Map styling and app-specific information may not transfer unchanged, so check the imported data for the intended use.GRIBGRIB (General Regularly-distributed Information in Binary form) is a binary format for exchanging gridded meteorological and geophysical data. Messages contain sections for identification, grid and product definitions, data representation, and values. GRIB1 and GRIB2 differ in specifications and tables; local definitions may also be used, so check the edition and producer's conventions.GTFGTF is gene annotation text with nine tab-separated columns. Coordinates are one-based and inclusive; attributes include gene_id and transcript_id. Required rows and attributes vary by producer and reader.HDF5HDF5 (Hierarchical Data Format version 5) is a hierarchical data model and file format for storing large and varied data. Groups form a hierarchy, while datasets store typed arrays with dimensions; groups and datasets can have attributes. HDF5 does not by itself prescribe one domain's coordinate, unit, or semantic conventions.iCalendariCalendar exchanges calendar information such as events, ToDos, and availability. Date, time zone, and recurrence interpretation should be checked after import.INI configuration fileINI is a conventional name for text configuration files organized as sections and key-value pairs. It has no single universal specification, so comment syntax, delimiters, key casing, and multiline values can vary between applications and parsers.Jupyter NotebookJupyter Notebook (.ipynb) is a notebook document format that stores code cells, Markdown cells, metadata, and outputs in a JSON structure. A notebook may contain executable code as well as its visible results, so viewing it and running it are different actions.JSONJSON is a text format that represents structured data with keys and values. It is widely used for web APIs and configuration files.JSON5JSON5 extends JSON with comments, trailing commas, some unquoted keys, and single-quoted strings. It is intended to make data easier for people to write by hand; it is not simply another name for JSON. Confirm that the receiving tool can parse JSON5.JSON LinesJSON Lines (.jsonl) is a text format with one valid JSON value on each line. It is convenient for logs and incremental processing because a reader can handle records one at a time. The proposed application/jsonl media type is not standardized.JWKA JWK is a JSON object that represents a cryptographic key. It can contain a key type (kty), key ID (kid), and other metadata. A JWKS groups multiple JWKs in a keys array. JWKs are often used to publish public keys; a JWK containing private-key material is sensitive.Keras`.keras` is Keras 3's native whole-model save format. It is normally a ZIP archive that brings together model configuration, weights, compile information, and optimizer state when present. Keras documentation describes config, metadata, and weight data in the archive. The file does not necessarily include implementation code for custom layers or custom objects; the loading environment may need those classes and dependencies. Keras provides a safety setting for loading, but that does not make an unknown model or its custom code trustworthy.KMLKML (.kml) is an XML format that describes how geographic information should appear in a map or earth browser. It can represent placemarks, lines, areas, descriptions, styles, and image overlays. GPX focuses on exchanging GPS waypoints, routes, and recorded tracks; KML focuses more on displaying, annotating, and visualizing geographic data.LASLAS is an open point-cloud exchange format maintained by ASPRS. Depending on the point data record format, it stores X/Y/Z coordinates and fields such as intensity, return number, classification, GPS time, RGB, scanner details, and extra attributes, alongside headers and variable-length records for metadata. LAS 1.5 and earlier versions differ in supported point records and coordinate-reference requirements, so check compatibility with older software. LAS is ordinarily uncompressed; losslessly compressed LAZ offers a different size and compatibility trade-off.LAZLAZ compresses LAS point records in chunks. LAZ 1.4 is based on LAS 1.4 and losslessly compresses its point data. Compatible implementations can decompress chunks independently, which may allow point-cloud processing or random access without expanding the entire file. Compression does not change the meaning of LAS coordinate, classification, or other fields, but reader-version support, extended records, and companion waveform data still affect interoperability. LAZ 1.4 does not define all of LAS 1.5, so the extension alone cannot establish compatibility with LAS 1.5 features.MAT-fileA MAT-file (.mat) is MATLAB's binary format for workspace variables. Versions 4, 6, 7, and 7.3 differ in supported arrays and data types, compression, size limits, and partial-access features. Ordinary MATLAB `save` operations default to Version 7; Version 7.3 is HDF5-based and supports large variables and partial access. Because v7.3 and earlier versions use different internals, check the file version and required features instead of inferring compatibility from the extension.MBTilesMBTiles stores map tiles and metadata in a SQLite database. This article covers specification 1.3 and distinguishes image tiles from pbf tiles containing gzip-compressed MVT.MetaImageMetaImage is a medical and scientific image format with a tagged text header and pixel data, handled by ITK's MetaIO. A .mha file combines header and pixels; a .mhd file separates the header and usually references a data file such as .raw. The header can record dimensionality, axis sizes, element type, byte order, and spacing.MRCMRC (MRC/CCP4 map and image format) is a binary format used mainly for cryo-electron microscopy images and 3D maps. In MRC2014, a 1,024-byte main header records array dimensions, MODE (the value data type), axis mapping, grid spacing, and extended-header length, followed by the data array. It is closely related to crystallographic CCP4 maps, but do not assume identical conventions or use; check the header and how the consuming software interprets it.MessagePackMessagePack is a binary serialization format for JSON-like values. It can represent integers, strings, binary data, arrays, and maps, and also defines extension values and timestamps. It is not text and must be read or written with a compatible library. The meaning of data and type mappings can also depend on application-level conventions.MVTMVT is a Protocol Buffers encoding for geographic vector tiles. Tiles contain named layers, features and attributes.netCDFnetCDF (Network Common Data Form) is a set of formats and software for storing and exchanging scientific data in a self-describing, portable form. A dataset is organized around dimensions, variables, and attributes. The classic data model differs from the extended model available with netCDF-4; netCDF-4/HDF5 files can use groups and other hierarchical features. The extension alone does not identify the file variant.NIfTINIfTI, usually NIfTI-1 or NIfTI-2, is a file format for working with neuroimaging data such as MRI and fMRI across analysis software. Its header describes voxel arrays, dimensions, data type, scaling, and mappings from voxel coordinates to anatomical or standard space. NIfTI-1 can combine header and image data in a .nii file or keep them in a .hdr/.img pair; .nii.gz is a single file compressed with gzip.NPYNPY (.npy) is NumPy's binary format for storing a single array. Its header records the format version, dtype, shape, and memory order, followed by the array data. Unlike a text table, it can preserve numeric types and multidimensional shape. NPY is not itself a compressed archive and is normally used for one array per file. Object-dtype arrays may involve pickle, so check object-array and `allow_pickle` handling when loading untrusted input.NPZNPZ (.npz) is NumPy's ZIP-based archive for storing multiple arrays together. It contains one `.npy` file per array, and NumPy `load` returns an `NpzFile` that can access arrays by name. `savez` writes an uncompressed archive, while `savez_compressed` uses DEFLATE, so the extension alone does not tell you whether entries are compressed. Each array keeps its dtype and shape through NPY. Object-dtype arrays may involve pickle; handle allow_pickle carefully with untrusted input.NRRDNRRD (Nearly Raw Raster Data) is a format for N-dimensional raster data used in scientific visualization and image processing. Its text header describes dimensions, type, axis sizes, and data encoding; it can also carry axis labels, units, directions, and spatial origin. Header and data may be combined in a .nrrd file or separated into an .nhdr header and external data file.ONNXONNX (Open Neural Network Exchange) is an open model representation for exchanging machine-learning models between frameworks and inference runtimes. A typical `.onnx` file stores a Protocol Buffers ModelProto describing a computation graph, inputs and outputs, types and shapes, opset imports, and initializer tensors. Safetensors primarily stores weight tensors, whereas ONNX represents a model graph as well. Conversion does not make every runtime support all operators or model-specific features; check the IR/opset versions and implementation support.ORCORC is a typed columnar file format used in analytics systems. Column projection and file indexes can help readers avoid unnecessary data.ParquetApache Parquet stores tabular data by column, organized into row groups and column chunks. Analytics tools can read needed columns without scanning every field.PCAPPCAP (.pcap) is a widely supported binary format for captured network packets. It records packet data along with link-layer type and timestamps. Its simpler structure is compatible with many older analyzers, but it has fewer ways than PCAPNG to represent details such as multiple interfaces or comments.PCAPNGPCAPNG stores packets captured from a network. It is more extensible than classic pcap and can retain details such as multiple interfaces and comments. Captures may contain credentials or personal data, so review them before sharing.PCDPCD stores point clouds used by PCL. The ASCII header in PCD 0.7 declares point fields and types, WIDTH and HEIGHT, VIEWPOINT and the storage mode.Java PropertiesJava Properties is a line-oriented key-value text format used mainly with Java's Properties API and ResourceBundle. The .properties extension is common, but character encoding depends on the loading method and Java version, so the extension alone is not enough to determine it.Protocol Buffers schema.proto is a schema file that describes Protocol Buffers messages, fields, and types. A compiler such as protoc reads it and generates code for selected languages. The .proto file is not a serialized message; it is normally edited as text.RINEXRINEX (Receiver Independent Exchange Format) is a text format for exchanging GNSS receiver observations and navigation messages independently of receiver manufacturer. RINEX 4.02, dated September 2025, defines observation, navigation, and meteorological files for multiple satellite navigation systems and signals. Long filenames commonly use .rnx, with an additional suffix such as .gz when compressed. RINEX contains measurement records for processing, not a finished route or map track.SafetensorsSafetensors is a binary format for storing and distributing machine-learning tensor values. A file begins with an 8-byte little-endian header length, followed by a UTF-8 JSON header describing tensor names, dtypes, shapes, and data offsets, then a byte buffer of tensor data. It is not by itself a model architecture or executable program. Unlike pickle-based serialization, it is not designed to restore arbitrary objects by running embedded reconstruction code. That does not prove that a file's source is trustworthy, that every reader is free of defects, or that a model is safe to use.SAMSAM (Sequence Alignment/Map) is a tab-delimited text format for sequencing reads and their alignment to reference sequences. Optional header lines describe references and software; each alignment record carries a read name, FLAG, reference and position, MAPQ, CIGAR, sequence, quality, and optional tags. The specification can also represent unmapped reads, so not every record is necessarily aligned. SAM is easy to inspect but can be large; BAM is its binary representation and CRAM adds reference-aware compression.Shell ScriptA shell script is a text file containing commands interpreted by a shell such as sh or Bash. The .sh extension is common, but it does not identify the shell syntax. Check the target environment, including the shebang, how the script is invoked, permissions, and line endings.ShapefileShapefile stores geometry and attributes across files. Matching .shp geometry, .shx index and .dbf attributes form the core set. Sending only .shp is insufficient.SP3SP3 (Standard Product 3) is a text format for exchanging epoch-based precise satellite orbits and clock corrections used in GNSS analysis. Its header identifies items such as the version, time system, and satellites; epoch records carry satellite positions and clock information. SP3-d supports up to 999 satellites. An SP3 product is distinct from RINEX receiver observations and is used for precise orbit products from analysis centers.SQLSQL files contain database commands. Syntax and supported features differ between database products.SQLite databaseSQLite is an embedded relational database stored in a disk file, usually with tables and indexes in one main file. Common extensions include .sqlite, .sqlite3, and .db, but the name alone does not confirm the format.TOMLTOML is a text configuration format with key-value pairs, tables, arrays, and typed values. Parser support and application-specific rules can differ.BitTorrent metainfo fileA .torrent file is a BitTorrent metainfo file. It is a bencoded dictionary that describes information such as the content name, piece data, and tracker URLs; it normally does not contain the distributed files themselves. A BitTorrent client reads it to locate peers and verify downloaded data.TSVTSV separates columns with tabs and rows with line breaks. The handling of tabs or line breaks inside values and quoting varies by tool.UBXUBX is a binary protocol between u-blox receivers and hosts. A .ubx log contains the messages actually recorded. This article uses the official ZED-F9P HPG 1.32, protocol 27.31 description as its baseline.vCardA VCF file contains vCard contact records. Applications may interpret versions, character encoding, repeated fields, and photos differently.WARCWARC (Web ARChive file format) aggregates multiple digital resources collected from the Web together with related information. Standardized as ISO 28500, a WARC file concatenates records whose headers describe fields such as date, record type, and content length, followed by a content block. Record types such as response, request, resource, metadata, and revisit capture resources and collection context; content can include images and formats other than HTML. Files are sometimes externally compressed as `.warc.gz`. WARC is not a standalone web-page format that guarantees a complete replay of a site.WSDLWSDL (Web Services Description Language) is an XML format for describing a web service interface and how it can be accessed. It connects abstract operations and messages with bindings for protocols and message formats, endpoints, and service information. A WSDL file is neither the service implementation nor the actual data exchanged.XMLXML is a markup language that represents structured data with tags. It is used where hierarchical structure and schema validation are needed.XMPXMP defines a metadata model, representation and core properties. It uses XML/RDF and may be embedded in supported files or stored in sidecars such as .xmp. It is not a replacement for the image itself.XML SchemaXSD (XML Schema Definition) is an XML-based schema language for defining elements, attributes, data types, and constraints in XML documents. An XSD is not the XML instance itself; it is used by an XML Schema validator to check instance documents. Check the schema version, namespaces, and validator support.YAMLYAML is a notation for writing mappings, sequences, and scalar values in a human-readable form. Its use overlaps with JSON, but it is not a superset.ZarrZarr specifies storage for multidimensional arrays and metadata in chunks. A dataset may be a directory or a set of keys in object storage, not one file. Zarr v2 and v3 differ, so check version and codec support at both ends.
Compare
- Arrow IPC vs CSV
- Arrow vs netCDF
- Arrow vs ORC
- Arrow IPC vs Parquet
- Arrow vs Zarr
- Avro vs CBOR
- Avro vs JSON
- Avro vs ORC
- Avro vs Parquet
- Avro vs Protocol Buffers
- BAM vs CRAM
- BED vs bigBed: text editing and indexed delivery
- BED vs GFF3: interval extraction and annotation structure
- bedGraph vs bigWig: numeric text and indexed delivery
- BSON vs JSON
- BSON vs MessagePack
- BUFR vs GRIB
- CBOR vs JSON
- CBOR vs MessagePack
- CSV vs JSON
- CSV vs Parquet
- DICOM vs JPEG
- DICOM vs TIFF
- E57 vs LAS
- FASTA vs FASTQ: sequences and quality retention
- FIT vs GPX
- FITS vs HDF5
- FITS vs netCDF
- FITS vs Zarr
- FlatGeobuf vs GeoPackage: delivery and SQL management
- GeoJSON vs JSON
- GeoPackage vs GeoJSON
- GeoPackage vs KML
- GeoParquet vs GeoPackage: columnar analysis and GIS management
- GeoTIFF vs netCDF
- GeoTIFF vs TIFF
- GeoTIFF vs Zarr
- GGUF vs Safetensors: inference delivery and weight storage
- GML vs GeoJSON: schemas and coordinate systems
- GPX vs KML
- GRIB vs netCDF
- GRIB vs Zarr
- GTF vs GFF3: attribute syntax and transcript mapping
- HDF5 vs netCDF
- HDF5 vs Zarr
- ICS vs CSV
- JSON vs TOML
- JSON vs YAML
- JSON5 vs JSON
- JSON Lines vs Avro
- JSON Lines vs CSV
- JSON Lines vs JSON
- JSON Lines vs Parquet
- Keras vs ONNX: training saves and inference exports
- LAS vs LAZ
- MBTiles vs MVT: tilesets and tile encoding
- MVT vs GeoJSON: tile delivery and data exchange
- netCDF vs Parquet
- netCDF vs Zarr
- NIfTI vs DICOM
- NPY vs NPZ
- NPZ vs HDF5: array bundles and partial reads
- ORC vs CSV
- Parquet vs JSON
- Parquet vs ORC
- Parquet vs Zarr
- PCAP vs PCAPNG
- PLY vs PCD
- Protocol Buffers vs JSON
- RINEX vs SP3: observations and orbit products
- Safetensors vs ONNX: weights or model graphs
- SAM vs BAM
- Shapefile vs GeoPackage: file sets and attribute preservation
- SQLite vs CSV
- TSV vs CSV
- UBX vs RINEX: receiver logs and observation exchange
- VCF vs CSV
- Web App Manifest vs JSON
- XML vs CSV
- XML vs JSON
- YAML vs TOML
- YAML vs XML