microproduct-l-sar/deformation-L-SAR/ISCEApp/_internal/pyproj/proj.pxi

549 lines
21 KiB
Cython

# PROJ API Definition
cdef extern from "proj.h" nogil:
cdef int PROJ_VERSION_MAJOR
cdef int PROJ_VERSION_MINOR
cdef int PROJ_VERSION_PATCH
void proj_context_set_search_paths(
PJ_CONTEXT *ctx, int count_paths, const char* const* paths)
int proj_context_set_database_path(PJ_CONTEXT *ctx,
const char *dbPath,
const char *const *auxDbPaths,
const char* const *options)
void proj_context_set_ca_bundle_path(PJ_CONTEXT *ctx, const char *path)
const char *proj_context_get_database_metadata(PJ_CONTEXT* ctx,
const char* key)
ctypedef struct PJ
ctypedef struct PJ_CONTEXT
PJ_CONTEXT *proj_context_create ()
PJ_CONTEXT *proj_context_clone (PJ_CONTEXT *ctx)
PJ_CONTEXT *proj_context_destroy (PJ_CONTEXT *ctx)
void proj_assign_context(PJ* pj, PJ_CONTEXT* ctx)
ctypedef enum PJ_LOG_LEVEL:
PJ_LOG_NONE
PJ_LOG_ERROR
PJ_LOG_DEBUG
PJ_LOG_TRACE
PJ_LOG_TELL
ctypedef void (*PJ_LOG_FUNCTION)(void *, int, const char *)
void proj_log_func (PJ_CONTEXT *ctx, void *app_data, PJ_LOG_FUNCTION logf)
int proj_errno (const PJ *P)
const char * proj_context_errno_string(PJ_CONTEXT* ctx, int err)
int proj_errno_reset (const PJ *P)
PJ *proj_create (PJ_CONTEXT *ctx, const char *definition)
PJ *proj_normalize_for_visualization(PJ_CONTEXT *ctx, const PJ* obj)
ctypedef struct PJ_PROJ_INFO:
const char *id
const char *description
const char *definition
int has_inverse #1 if an inverse mapping exists, 0 otherwise */
double accuracy
PJ_PROJ_INFO proj_pj_info(PJ *P)
ctypedef struct PJ_XYZT:
double x, y, z, t
ctypedef struct PJ_UVWT:
double u, v, w, t
ctypedef struct PJ_LPZT:
double lam, phi, z, t
ctypedef struct PJ_OPK:
double o, p, k
ctypedef struct PJ_ENU:
double e, n, u
ctypedef struct PJ_GEOD:
double s, a1, a2
ctypedef struct PJ_UV:
double u, v
ctypedef struct PJ_XY:
double x, y
ctypedef struct PJ_LP:
double lam, phi
ctypedef struct PJ_XYZ:
double x, y, z
ctypedef struct PJ_UVW:
double u, v, w
ctypedef struct PJ_LPZ:
double lam, phi, z
ctypedef union PJ_COORD:
double v[4];
PJ_XYZT xyzt;
PJ_UVWT uvwt;
PJ_LPZT lpzt;
PJ_GEOD geod;
PJ_OPK opk;
PJ_ENU enu;
PJ_XYZ xyz;
PJ_UVW uvw;
PJ_LPZ lpz;
PJ_XY xy;
PJ_UV uv;
PJ_LP lp;
PJ_COORD proj_coord (double x, double y, double z, double t)
ctypedef enum PJ_DIRECTION:
PJ_FWD # Forward
PJ_IDENT # Do nothing
PJ_INV # Inverse
int proj_angular_input (PJ *P, PJ_DIRECTION dir)
int proj_angular_output (PJ *P, PJ_DIRECTION dir)
int proj_degree_input (PJ *P, PJ_DIRECTION dir)
int proj_degree_output (PJ *P, PJ_DIRECTION dir)
PJ_COORD proj_trans (PJ *P, PJ_DIRECTION direction, PJ_COORD coord)
size_t proj_trans_generic (
PJ *P,
PJ_DIRECTION direction,
double *x, size_t sx, size_t nx,
double *y, size_t sy, size_t ny,
double *z, size_t sz, size_t nz,
double *t, size_t st, size_t nt
)
int proj_trans_bounds(
PJ_CONTEXT* context,
PJ *P,
PJ_DIRECTION direction,
const double xmin,
const double ymin,
const double xmax,
const double ymax,
double* out_xmin,
double* out_ymin,
double* out_xmax,
double* out_ymax,
int densify_pts
)
ctypedef struct PJ_AREA
PJ *proj_create_crs_to_crs_from_pj(
PJ_CONTEXT *ctx,
PJ *source_crs,
PJ *target_crs,
PJ_AREA *area,
const char* const *options,
)
ctypedef enum PJ_COMPARISON_CRITERION:
PJ_COMP_STRICT
PJ_COMP_EQUIVALENT
PJ_COMP_EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS
void proj_destroy(PJ *obj)
int proj_is_equivalent_to_with_ctx(PJ_CONTEXT *ctx,
const PJ *obj, const PJ *other,
PJ_COMPARISON_CRITERION criterion)
const char* proj_get_id_auth_name(const PJ *obj, int index)
const char* proj_get_id_code(const PJ *obj, int index)
int proj_get_area_of_use(PJ_CONTEXT *ctx,
const PJ *obj,
double* out_west_lon_degree,
double* out_south_lat_degree,
double* out_east_lon_degree,
double* out_north_lat_degree,
const char **out_area_name)
PJ_AREA *proj_area_create()
void proj_area_set_bbox(PJ_AREA *area,
double west_lon_degree,
double south_lat_degree,
double east_lon_degree,
double north_lat_degree)
void proj_area_destroy(PJ_AREA* area)
ctypedef enum PJ_WKT_TYPE:
PJ_WKT2_2015
PJ_WKT2_2015_SIMPLIFIED
PJ_WKT2_2019
PJ_WKT2_2019_SIMPLIFIED
PJ_WKT1_GDAL
PJ_WKT1_ESRI
const char* proj_as_wkt(PJ_CONTEXT *ctx,
const PJ *obj,
PJ_WKT_TYPE type,
const char* const *options)
ctypedef enum PJ_PROJ_STRING_TYPE:
PJ_PROJ_5
PJ_PROJ_4
const char* proj_as_proj_string(PJ_CONTEXT *ctx,
const PJ *obj,
PJ_PROJ_STRING_TYPE type,
const char* const *options)
const char* proj_as_projjson(PJ_CONTEXT *ctx,
const PJ *obj,
const char* const *options)
PJ *proj_crs_get_geodetic_crs(PJ_CONTEXT *ctx, const PJ *crs)
ctypedef enum PJ_TYPE:
PJ_TYPE_UNKNOWN
PJ_TYPE_ELLIPSOID
PJ_TYPE_PRIME_MERIDIAN
PJ_TYPE_GEODETIC_REFERENCE_FRAME
PJ_TYPE_DYNAMIC_GEODETIC_REFERENCE_FRAME
PJ_TYPE_VERTICAL_REFERENCE_FRAME
PJ_TYPE_DYNAMIC_VERTICAL_REFERENCE_FRAME
PJ_TYPE_DATUM_ENSEMBLE
PJ_TYPE_CRS
PJ_TYPE_GEODETIC_CRS
PJ_TYPE_GEOCENTRIC_CRS
PJ_TYPE_GEOGRAPHIC_CRS
PJ_TYPE_GEOGRAPHIC_2D_CRS
PJ_TYPE_GEOGRAPHIC_3D_CRS
PJ_TYPE_VERTICAL_CRS
PJ_TYPE_PROJECTED_CRS
PJ_TYPE_COMPOUND_CRS
PJ_TYPE_TEMPORAL_CRS
PJ_TYPE_ENGINEERING_CRS
PJ_TYPE_BOUND_CRS
PJ_TYPE_OTHER_CRS
PJ_TYPE_CONVERSION
PJ_TYPE_TRANSFORMATION
PJ_TYPE_CONCATENATED_OPERATION
PJ_TYPE_OTHER_COORDINATE_OPERATION
PJ_TYPE_TEMPORAL_DATUM
PJ_TYPE_ENGINEERING_DATUM
PJ_TYPE_PARAMETRIC_DATUM
PJ_TYPE_DERIVED_PROJECTED_CRS
PJ_TYPE proj_get_type(const PJ *obj)
const char* proj_get_name(const PJ *obj)
const char* proj_get_remarks(const PJ *obj)
const char* proj_get_scope(const PJ *obj)
int proj_is_crs(const PJ *obj)
int proj_is_derived_crs(PJ_CONTEXT *ctx, const PJ* crs)
PJ *proj_crs_get_datum(PJ_CONTEXT *ctx, const PJ *crs)
PJ *proj_crs_get_horizontal_datum(PJ_CONTEXT *ctx, const PJ *crs)
ctypedef enum PJ_COORDINATE_SYSTEM_TYPE:
PJ_CS_TYPE_UNKNOWN
PJ_CS_TYPE_CARTESIAN
PJ_CS_TYPE_ELLIPSOIDAL
PJ_CS_TYPE_VERTICAL
PJ_CS_TYPE_SPHERICAL
PJ_CS_TYPE_ORDINAL
PJ_CS_TYPE_PARAMETRIC
PJ_CS_TYPE_DATETIMETEMPORAL
PJ_CS_TYPE_TEMPORALCOUNT
PJ_CS_TYPE_TEMPORALMEASURE
PJ *proj_crs_get_coordinate_system(PJ_CONTEXT *ctx, const PJ *crs)
PJ_COORDINATE_SYSTEM_TYPE proj_cs_get_type(PJ_CONTEXT *ctx,
const PJ *cs)
int proj_cs_get_axis_count(PJ_CONTEXT *ctx,
const PJ *cs)
int proj_cs_get_axis_info(PJ_CONTEXT *ctx,
const PJ *cs, int index,
const char **out_name,
const char **out_abbrev,
const char **out_direction,
double *out_unit_conv_factor,
const char **out_unit_name,
const char **out_unit_auth_name,
const char **out_unit_code)
PJ *proj_get_ellipsoid(PJ_CONTEXT *ctx, const PJ *obj)
int proj_ellipsoid_get_parameters(PJ_CONTEXT *ctx,
const PJ *ellipsoid,
double *out_semi_major_metre,
double *out_semi_minor_metre,
int *out_is_semi_minor_computed,
double *out_inv_flattening)
PJ *proj_get_prime_meridian(PJ_CONTEXT *ctx, const PJ *obj)
int proj_prime_meridian_get_parameters(PJ_CONTEXT *ctx,
const PJ *prime_meridian,
double *out_longitude,
double *out_unit_conv_factor,
const char **out_unit_name)
PJ *proj_crs_get_sub_crs(PJ_CONTEXT *ctx, const PJ *crs, int index)
PJ *proj_get_source_crs(PJ_CONTEXT *ctx, const PJ *obj)
PJ *proj_get_target_crs(PJ_CONTEXT *ctx, const PJ *obj)
ctypedef struct PJ_OBJ_LIST
PJ_OBJ_LIST *proj_identify(PJ_CONTEXT *ctx,
const PJ* obj,
const char *auth_name,
const char* const *options,
int **out_confidence)
PJ *proj_list_get(PJ_CONTEXT *ctx,
const PJ_OBJ_LIST *result,
int index)
int proj_list_get_count(const PJ_OBJ_LIST *result)
void proj_list_destroy(PJ_OBJ_LIST *result)
void proj_int_list_destroy(int* list)
void proj_context_use_proj4_init_rules(PJ_CONTEXT *ctx, int enable)
ctypedef enum PJ_GUESSED_WKT_DIALECT:
PJ_GUESSED_WKT2_2018
PJ_GUESSED_WKT2_2015
PJ_GUESSED_WKT1_GDAL
PJ_GUESSED_WKT1_ESRI
PJ_GUESSED_NOT_WKT
PJ_GUESSED_WKT_DIALECT proj_context_guess_wkt_dialect(PJ_CONTEXT *ctx,
const char *wkt)
ctypedef struct PJ_OPERATIONS:
const char *id
PJ *(*proj)(PJ *)
const char * const *descr
const PJ_OPERATIONS *proj_list_operations()
ctypedef struct PJ_ELLPS:
const char *id # ellipse keyword name
const char *major # a= value
const char *ell # elliptical parameter
const char *name # comments
const PJ_ELLPS *proj_list_ellps()
ctypedef struct PJ_PRIME_MERIDIANS:
const char *id
const char *defn
const PJ_PRIME_MERIDIANS *proj_list_prime_meridians()
ctypedef char **PROJ_STRING_LIST
void proj_string_list_destroy(PROJ_STRING_LIST list)
PROJ_STRING_LIST proj_get_authorities_from_database(PJ_CONTEXT *ctx)
PROJ_STRING_LIST proj_get_codes_from_database(PJ_CONTEXT *ctx,
const char *auth_name,
PJ_TYPE type,
int allow_deprecated)
ctypedef struct PROJ_CRS_INFO:
char* auth_name
char* code
char* name
PJ_TYPE type
int deprecated
int bbox_valid
double west_lon_degree
double south_lat_degree
double east_lon_degree
double north_lat_degree
char* area_name
char* projection_method_name
ctypedef struct PROJ_CRS_LIST_PARAMETERS:
const PJ_TYPE* types
size_t typesCount
int crs_area_of_use_contains_bbox
int bbox_valid
double west_lon_degree
double south_lat_degree
double east_lon_degree
double north_lat_degree
int allow_deprecated
PROJ_CRS_LIST_PARAMETERS *proj_get_crs_list_parameters_create()
void proj_get_crs_list_parameters_destroy(PROJ_CRS_LIST_PARAMETERS* params)
PROJ_CRS_INFO **proj_get_crs_info_list_from_database(
PJ_CONTEXT *ctx,
const char *auth_name,
const PROJ_CRS_LIST_PARAMETERS* params,
int *out_result_count)
void proj_crs_info_list_destroy(PROJ_CRS_INFO** list)
PJ *proj_crs_get_coordoperation(PJ_CONTEXT *ctx,
const PJ *crs)
int proj_coordoperation_get_method_info(PJ_CONTEXT *ctx,
const PJ *coordoperation,
const char **out_method_name,
const char **out_method_auth_name,
const char **out_method_code)
int proj_coordoperation_is_instantiable(PJ_CONTEXT *ctx,
const PJ *coordoperation)
int proj_coordoperation_has_ballpark_transformation(PJ_CONTEXT *ctx,
const PJ *coordoperation)
int proj_coordoperation_get_param_count(PJ_CONTEXT *ctx,
const PJ *coordoperation)
int proj_coordoperation_get_param_index(PJ_CONTEXT *ctx,
const PJ *coordoperation,
const char *name)
int proj_coordoperation_get_param(PJ_CONTEXT *ctx,
const PJ *coordoperation,
int index,
const char **out_name,
const char **out_auth_name,
const char **out_code,
double *out_value,
const char **out_value_string,
double *out_unit_conv_factor,
const char **out_unit_name,
const char **out_unit_auth_name,
const char **out_unit_code,
const char **out_unit_category)
int proj_coordoperation_get_grid_used_count(PJ_CONTEXT *ctx,
const PJ *coordoperation)
int proj_coordoperation_get_grid_used(PJ_CONTEXT *ctx,
const PJ *coordoperation,
int index,
const char **out_short_name,
const char **out_full_name,
const char **out_package_name,
const char **out_url,
int *out_direct_download,
int *out_open_license,
int *out_available)
double proj_coordoperation_get_accuracy(PJ_CONTEXT *ctx,
const PJ *obj)
int proj_coordoperation_get_towgs84_values(PJ_CONTEXT *ctx,
const PJ *coordoperation,
double *out_values,
int value_count,
int emit_error_if_incompatible)
int proj_concatoperation_get_step_count(PJ_CONTEXT *ctx,
const PJ *concatoperation)
PJ *proj_concatoperation_get_step(PJ_CONTEXT *ctx,
const PJ *concatoperation,
int i_step)
ctypedef enum PJ_CATEGORY:
PJ_CATEGORY_ELLIPSOID
PJ_CATEGORY_PRIME_MERIDIAN
PJ_CATEGORY_DATUM
PJ_CATEGORY_CRS
PJ_CATEGORY_COORDINATE_OPERATION
PJ_CATEGORY_DATUM_ENSEMBLE
PJ *proj_create_from_database(PJ_CONTEXT *ctx,
const char *auth_name,
const char *code,
PJ_CATEGORY category,
int usePROJAlternativeGridNames,
const char* const *options)
PJ_OBJ_LIST *proj_create_from_name(PJ_CONTEXT *ctx,
const char *auth_name,
const char *searchedName,
const PJ_TYPE* types,
size_t typesCount,
int approximateMatch,
size_t limitResultCount,
const char* const *options)
ctypedef struct PJ_OPERATION_FACTORY_CONTEXT
PJ_OPERATION_FACTORY_CONTEXT *proj_create_operation_factory_context(
PJ_CONTEXT *ctx,
const char *authority
)
void proj_operation_factory_context_destroy(
PJ_OPERATION_FACTORY_CONTEXT *ctx
)
PJ_OBJ_LIST *proj_create_operations(
PJ_CONTEXT *ctx,
const PJ *source_crs,
const PJ *target_crs,
const PJ_OPERATION_FACTORY_CONTEXT *operationContext
)
void proj_operation_factory_context_set_grid_availability_use(
PJ_CONTEXT *ctx,
PJ_OPERATION_FACTORY_CONTEXT *factory_ctx,
PROJ_GRID_AVAILABILITY_USE use
)
void proj_operation_factory_context_set_spatial_criterion(
PJ_CONTEXT *ctx,
PJ_OPERATION_FACTORY_CONTEXT *factory_ctx,
PROJ_SPATIAL_CRITERION criterion
)
void proj_operation_factory_context_set_area_of_interest(
PJ_CONTEXT *ctx,
PJ_OPERATION_FACTORY_CONTEXT *factory_ctx,
double west_lon_degree,
double south_lat_degree,
double east_lon_degree,
double north_lat_degree
)
void proj_operation_factory_context_set_allow_ballpark_transformations(
PJ_CONTEXT *ctx,
PJ_OPERATION_FACTORY_CONTEXT *factory_ctx,
int allow
)
void proj_operation_factory_context_set_discard_superseded(
PJ_CONTEXT *ctx,
PJ_OPERATION_FACTORY_CONTEXT *factory_ctx,
int discard
)
void proj_operation_factory_context_set_desired_accuracy(
PJ_CONTEXT *ctx,
PJ_OPERATION_FACTORY_CONTEXT *factory_ctx,
double accuracy
)
ctypedef enum PROJ_SPATIAL_CRITERION:
PROJ_SPATIAL_CRITERION_STRICT_CONTAINMENT
PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION
ctypedef enum PROJ_GRID_AVAILABILITY_USE:
PROJ_GRID_AVAILABILITY_USED_FOR_SORTING
PROJ_GRID_AVAILABILITY_DISCARD_OPERATION_IF_MISSING_GRID
PROJ_GRID_AVAILABILITY_IGNORED
PROJ_GRID_AVAILABILITY_KNOWN_AVAILABLE
ctypedef struct PJ_FACTORS:
double meridional_scale
double parallel_scale
double areal_scale
double angular_distortion
double meridian_parallel_angle
double meridian_convergence
double tissot_semimajor
double tissot_semiminor
double dx_dlam
double dx_dphi
double dy_dlam
double dy_dphi
PJ_FACTORS proj_factors(PJ *P, PJ_COORD lp)
# neworking related
const char *proj_context_get_user_writable_directory(PJ_CONTEXT *ctx, int create)
int proj_context_set_enable_network(PJ_CONTEXT* ctx, int enabled)
int proj_context_is_network_enabled(PJ_CONTEXT* ctx)
# units
ctypedef struct PROJ_UNIT_INFO:
# Authority name.
char* auth_name
# Object code.
char* code
# Object name. For example "metre", "US survey foot", etc. */
char* name
# Category of the unit: one of "linear", "linear_per_time", "angular",
# "angular_per_time", "scale", "scale_per_time" or "time" */
char* category
# Conversion factor to apply to transform from that unit to the
# corresponding SI unit (metre for "linear", radian for "angular", etc.).
# It might be 0 in some cases to indicate no known conversion factor.
double conv_factor
# PROJ short name, like "m", "ft", "us-ft", etc... Might be NULL */
char* proj_short_name
# Whether the object is deprecated
int deprecated
PROJ_UNIT_INFO **proj_get_units_from_database(
PJ_CONTEXT *ctx,
const char *auth_name,
const char *category,
int allow_deprecated,
int *out_result_count,
)
void proj_unit_list_destroy(PROJ_UNIT_INFO** list)
const char *proj_context_get_url_endpoint(PJ_CONTEXT* ctx)